mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
bb9c2988f8
commit
64b6b29075
2 changed files with 23 additions and 9 deletions
|
@ -112,11 +112,9 @@ func (c *templateContext) paramsKeysToLower(n parse.Node) {
|
||||||
c.paramsKeysToLowerForNodes(subTempl.Root)
|
c.paramsKeysToLowerForNodes(subTempl.Root)
|
||||||
}
|
}
|
||||||
case *parse.PipeNode:
|
case *parse.PipeNode:
|
||||||
for i, elem := range x.Decl {
|
if len(x.Decl) == 1 && len(x.Cmds) == 1 {
|
||||||
if len(x.Cmds) > i {
|
// maps $site => .Site etc.
|
||||||
// maps $site => .Site etc.
|
c.decl[x.Decl[0].Ident[0]] = x.Cmds[0].String()
|
||||||
c.decl[elem.Ident[0]] = x.Cmds[i].String()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, cmd := range x.Cmds {
|
for _, cmd := range x.Cmds {
|
||||||
|
|
|
@ -19,13 +19,16 @@ import (
|
||||||
|
|
||||||
"html/template"
|
"html/template"
|
||||||
|
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
testFuncs = map[string]interface{}{
|
testFuncs = map[string]interface{}{
|
||||||
"First": func(v ...interface{}) interface{} { return v[0] },
|
"ToTime": func(v interface{}) interface{} { return cast.ToTime(v) },
|
||||||
"Echo": func(v interface{}) interface{} { return v },
|
"First": func(v ...interface{}) interface{} { return v[0] },
|
||||||
|
"Echo": func(v interface{}) interface{} { return v },
|
||||||
"where": func(seq, key interface{}, args ...interface{}) (interface{}, error) {
|
"where": func(seq, key interface{}, args ...interface{}) (interface{}, error) {
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"ByWeight": fmt.Sprintf("%v:%v:%v", seq, key, args),
|
"ByWeight": fmt.Sprintf("%v:%v:%v", seq, key, args),
|
||||||
|
@ -37,8 +40,9 @@ var (
|
||||||
"NotParam": "Hi There",
|
"NotParam": "Hi There",
|
||||||
"Slice": []int{1, 3},
|
"Slice": []int{1, 3},
|
||||||
"Params": map[string]interface{}{
|
"Params": map[string]interface{}{
|
||||||
"lower": "P1L",
|
"lower": "P1L",
|
||||||
"slice": []int{1, 3},
|
"slice": []int{1, 3},
|
||||||
|
"mydate": "1972-01-28",
|
||||||
},
|
},
|
||||||
"Pages": map[string]interface{}{
|
"Pages": map[string]interface{}{
|
||||||
"ByWeight": []int{1, 3},
|
"ByWeight": []int{1, 3},
|
||||||
|
@ -142,6 +146,14 @@ PARAMS STRING2: {{ with $pages }}{{ .ByWeight }}{{ end }}
|
||||||
PARAMS STRING3: {{ $pages3.ByWeight }}
|
PARAMS STRING3: {{ $pages3.ByWeight }}
|
||||||
{{ $first := First .Pages .Site.Params.LOWER }}
|
{{ $first := First .Pages .Site.Params.LOWER }}
|
||||||
PARAMS COMPOSITE: {{ $first.ByWeight }}
|
PARAMS COMPOSITE: {{ $first.ByWeight }}
|
||||||
|
|
||||||
|
|
||||||
|
{{ $time := $.Params.MyDate | ToTime }}
|
||||||
|
{{ $time = $time.AddDate 0 1 0 }}
|
||||||
|
PARAMS TIME: {{ $time.Format "2006-01-02" }}
|
||||||
|
|
||||||
|
{{ $_x := $.Params.MyDate | ToTime }}
|
||||||
|
PARAMS TIME2: {{ $_x.AddDate 0 1 0 }}
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -209,6 +221,10 @@ func TestParamsKeysToLower(t *testing.T) {
|
||||||
// Issue #5068
|
// Issue #5068
|
||||||
require.Contains(t, result, "PCurrentSection: pcurrentsection")
|
require.Contains(t, result, "PCurrentSection: pcurrentsection")
|
||||||
|
|
||||||
|
// Issue #5541
|
||||||
|
require.Contains(t, result, "PARAMS TIME: 1972-02-28")
|
||||||
|
require.Contains(t, result, "PARAMS TIME2: 1972-02-28")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkTemplateParamsKeysToLower(b *testing.B) {
|
func BenchmarkTemplateParamsKeysToLower(b *testing.B) {
|
||||||
|
|
Loading…
Reference in a new issue