Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-21 23:59:38 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-22 20:41:50 +0300
commita3fe5e5e35f311f22b6b4fc38abfcf64cd2c7d6f (patch)
tree06cf1f647ae026b4fb3053c85370c2b203c7a089 /resources
parentcd07e6d57b158a76f812e8c4c9567dbc84f57939 (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')
-rw-r--r--resources/page/page_nop.go2
-rw-r--r--resources/page/site.go6
-rw-r--r--resources/page/testhelpers_test.go2
-rw-r--r--resources/resource.go4
-rw-r--r--resources/resource/params.go6
-rw-r--r--resources/resource/resourcetypes.go3
-rw-r--r--resources/resource_metadata.go2
-rw-r--r--resources/transform.go6
8 files changed, 19 insertions, 12 deletions
diff --git a/resources/page/page_nop.go b/resources/page/page_nop.go
index ea1a44d8f..09ac136fc 100644
--- a/resources/page/page_nop.go
+++ b/resources/page/page_nop.go
@@ -300,7 +300,7 @@ func (p *nopPage) Param(key interface{}) (interface{}, error) {
return nil, nil
}
-func (p *nopPage) Params() map[string]interface{} {
+func (p *nopPage) Params() maps.Params {
return nil
}
diff --git a/resources/page/site.go b/resources/page/site.go
index 9153c8556..31058637b 100644
--- a/resources/page/site.go
+++ b/resources/page/site.go
@@ -17,6 +17,8 @@ import (
"html/template"
"time"
+ "github.com/gohugoio/hugo/common/maps"
+
"github.com/gohugoio/hugo/config"
"github.com/gohugoio/hugo/common/hugo"
@@ -39,7 +41,7 @@ type Site interface {
Taxonomies() interface{}
LastChange() time.Time
Menus() navigation.Menus
- Params() map[string]interface{}
+ Params() maps.Params
Data() map[string]interface{}
}
@@ -107,7 +109,7 @@ func (t testSite) BaseURL() template.URL {
return ""
}
-func (t testSite) Params() map[string]interface{} {
+func (t testSite) Params() maps.Params {
return nil
}
diff --git a/resources/page/testhelpers_test.go b/resources/page/testhelpers_test.go
index 560166b0b..cc6a74f06 100644
--- a/resources/page/testhelpers_test.go
+++ b/resources/page/testhelpers_test.go
@@ -370,7 +370,7 @@ func (p *testPage) Param(key interface{}) (interface{}, error) {
return resource.Param(p, nil, key)
}
-func (p *testPage) Params() map[string]interface{} {
+func (p *testPage) Params() maps.Params {
return p.params
}
diff --git a/resources/resource.go b/resources/resource.go
index acf8e37c0..d206c17b5 100644
--- a/resources/resource.go
+++ b/resources/resource.go
@@ -30,9 +30,9 @@ import (
"github.com/pkg/errors"
"github.com/gohugoio/hugo/common/hugio"
+ "github.com/gohugoio/hugo/common/maps"
"github.com/gohugoio/hugo/resources/page"
"github.com/gohugoio/hugo/resources/resource"
-
"github.com/spf13/afero"
"github.com/gohugoio/hugo/helpers"
@@ -228,7 +228,7 @@ func (l *genericResource) Name() string {
return l.name
}
-func (l *genericResource) Params() map[string]interface{} {
+func (l *genericResource) Params() maps.Params {
return l.params
}
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 {
diff --git a/resources/resource_metadata.go b/resources/resource_metadata.go
index ce17df022..7bf7479a3 100644
--- a/resources/resource_metadata.go
+++ b/resources/resource_metadata.go
@@ -129,7 +129,7 @@ func AssignMetadata(metadata []map[string]interface{}, resources ...resource.Res
params, found := meta["params"]
if found {
- m := cast.ToStringMap(params)
+ m := maps.ToStringMap(params)
// Needed for case insensitive fetching of params values
maps.ToLower(m)
ma.updateParams(m)
diff --git a/resources/transform.go b/resources/transform.go
index ee4912a10..0e44c6bbc 100644
--- a/resources/transform.go
+++ b/resources/transform.go
@@ -26,11 +26,11 @@ import (
bp "github.com/gohugoio/hugo/bufferpool"
- "github.com/gohugoio/hugo/resources/internal"
-
"github.com/gohugoio/hugo/common/herrors"
"github.com/gohugoio/hugo/common/hugio"
+ "github.com/gohugoio/hugo/common/maps"
"github.com/gohugoio/hugo/helpers"
+ "github.com/gohugoio/hugo/resources/internal"
"github.com/gohugoio/hugo/resources/resource"
"github.com/gohugoio/hugo/media"
@@ -200,7 +200,7 @@ func (r *resourceAdapter) Name() string {
return r.target.Name()
}
-func (r *resourceAdapter) Params() map[string]interface{} {
+func (r *resourceAdapter) Params() maps.Params {
r.init(false, false)
return r.target.Params()
}