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" }}
```
This commit is contained in:
Bjørn Erik Pedersen
2019-11-21 21:59:38 +01:00
parent cd07e6d57b
commit a3fe5e5e35
33 changed files with 317 additions and 155 deletions

View File

@@ -14,6 +14,7 @@
package navigation
import (
"github.com/gohugoio/hugo/common/maps"
"github.com/gohugoio/hugo/common/types"
"github.com/gohugoio/hugo/compare"
@@ -59,7 +60,7 @@ type Page interface {
Section() string
Weight() int
IsPage() bool
Params() map[string]interface{}
Params() maps.Params
}
// Menu is a collection of menu entries.

View File

@@ -14,6 +14,8 @@
package navigation
import (
"github.com/gohugoio/hugo/common/maps"
"github.com/pkg/errors"
"github.com/spf13/cast"
)
@@ -73,7 +75,7 @@ func PageMenusFromPage(p Page) (PageMenus, error) {
}
// Could be a structured menu entry
menus, err := cast.ToStringMapE(ms)
menus, err := maps.ToStringMapE(ms)
if err != nil {
return pm, errors.Wrapf(err, "unable to process menus for %q", p.LinkTitle())
}
@@ -81,7 +83,7 @@ func PageMenusFromPage(p Page) (PageMenus, error) {
for name, menu := range menus {
menuEntry := MenuEntry{Page: p, Name: p.LinkTitle(), Weight: p.Weight(), Menu: name}
if menu != nil {
ime, err := cast.ToStringMapE(menu)
ime, err := maps.ToStringMapE(menu)
if err != nil {
return pm, errors.Wrapf(err, "unable to process menus for %q", p.LinkTitle())
}