diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-11-21 21:59:38 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-11-22 18:41:50 +0100 |
commit | a3fe5e5e35f311f22b6b4fc38abfcf64cd2c7d6f (patch) | |
tree | 06cf1f647ae026b4fb3053c85370c2b203c7a089 /resources/resource | |
parent | cd07e6d57b158a76f812e8c4c9567dbc84f57939 (diff) |
Fix Params case handling in the index, sort and where func
This means that you can now do:
```
{{ range where .Site.Pages "Params.MYPARAM" "foo" }}
```
Diffstat (limited to 'resources/resource')
-rw-r--r-- | resources/resource/params.go | 6 | ||||
-rw-r--r-- | resources/resource/resourcetypes.go | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/resources/resource/params.go b/resources/resource/params.go index 4cb41715d..89da718ec 100644 --- a/resources/resource/params.go +++ b/resources/resource/params.go @@ -19,12 +19,16 @@ import ( "github.com/spf13/cast" ) -func Param(r ResourceParamsProvider, fallback map[string]interface{}, key interface{}) (interface{}, error) { +func Param(r ResourceParamsProvider, fallback maps.Params, key interface{}) (interface{}, error) { keyStr, err := cast.ToStringE(key) if err != nil { return nil, err } + if fallback == nil { + return maps.GetNestedParam(keyStr, ".", r.Params()) + } + return maps.GetNestedParam(keyStr, ".", r.Params(), fallback) } diff --git a/resources/resource/resourcetypes.go b/resources/resource/resourcetypes.go index 7a055b25d..b525d7d55 100644 --- a/resources/resource/resourcetypes.go +++ b/resources/resource/resourcetypes.go @@ -14,6 +14,7 @@ package resource import ( + "github.com/gohugoio/hugo/common/maps" "github.com/gohugoio/hugo/langs" "github.com/gohugoio/hugo/media" "github.com/gohugoio/hugo/resources/images/exif" @@ -85,7 +86,7 @@ type ResourceMetaProvider interface { type ResourceParamsProvider interface { // Params set in front matter for this resource. - Params() map[string]interface{} + Params() maps.Params } type ResourceDataProvider interface { |