mirror of
https://github.com/gohugoio/hugo.git
synced 2025-05-03 00:50:11 +03:00
Make 'where' template function accepts dot chaining key argument
'where' template function used to accept only each element's struct field name, method name and map key name as its second argument. This extends it to accept dot chaining key like 'Params.foo.bar' as the argument. It evaluates sub elements of each array elements and checks it matches the third argument value. Typical use case would be for filtering Pages by user defined front matter value. For example, to filter pages which have 'Params.foo.bar' and its value is 'baz', it is used like {{ range where .Data.Pages "Params.foo.bar" "baz" }} {{ .Content }} {{ end }} It ignores all leading and trailing dots so it can also be used with ".Params.foo.bar"
This commit is contained in:
parent
dd5bc0345b
commit
fa8ac87d5e
3 changed files with 227 additions and 56 deletions
|
@ -66,6 +66,19 @@ e.g.
|
|||
{{ .Content}}
|
||||
{{ end }}
|
||||
|
||||
It can be used with dot chaining second argument to refer a nested element of a value.
|
||||
|
||||
e.g.
|
||||
|
||||
// Front matter on some pages
|
||||
+++
|
||||
series: golang
|
||||
+++
|
||||
|
||||
{{ range where .Site.Recent "Params.series" "golang" }}
|
||||
{{ .Content}}
|
||||
{{ end }}
|
||||
|
||||
*where and first can be stacked*
|
||||
|
||||
e.g.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue