summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-01-18 17:48:19 +0000
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-01-20 12:42:24 +0000
commite1a66c7343db9d232749255dd9e3a58d94b86997 (patch)
treed627599de196ed8e08622226e5634cd602b08914
parentdb3c49d049193e0fc225fe4bdb95712c311d6615 (diff)
Fix Params case handling in the new site global
Fixes #5615
-rw-r--r--hugolib/case_insensitive_test.go2
-rw-r--r--tpl/tplimpl/template_ast_transformers.go6
-rw-r--r--tpl/tplimpl/template_ast_transformers_test.go18
3 files changed, 25 insertions, 1 deletions
diff --git a/hugolib/case_insensitive_test.go b/hugolib/case_insensitive_test.go
index f3ba5f933..8c94bf5db 100644
--- a/hugolib/case_insensitive_test.go
+++ b/hugolib/case_insensitive_test.go
@@ -125,6 +125,7 @@ Shortcode Site: {{ .Page.Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
writeToFs(t, fs, "layouts/partials/partial.html", `
Partial Page: {{ .Params.COLOR }}|{{ .Params.Colors.Blue }}
Partial Site: {{ .Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
+Partial Site Global: {{ site.Params.COLOR }}|{{ site.Params.COLORS.YELLOW }}
`)
writeToFs(t, fs, "config.toml", caseMixingSiteConfigTOML)
@@ -200,6 +201,7 @@ Site Colors: {{ .Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
"Shortcode Site: green|yellow",
"Partial Page: red|heavenly",
"Partial Site: green|yellow",
+ "Partial Site Global: green|yellow",
"Page Title: Side 1",
"Site Title: Nynorsk title",
"&laquo;Hi&raquo;", // angled quotes
diff --git a/tpl/tplimpl/template_ast_transformers.go b/tpl/tplimpl/template_ast_transformers.go
index 1e1589308..f32b189ff 100644
--- a/tpl/tplimpl/template_ast_transformers.go
+++ b/tpl/tplimpl/template_ast_transformers.go
@@ -130,8 +130,12 @@ func (c *templateContext) paramsKeysToLower(n parse.Node) {
c.updateIdentsIfNeeded(an.Ident)
case *parse.PipeNode:
c.paramsKeysToLower(an)
+ case *parse.ChainNode:
+ // site.Params...
+ if len(an.Field) > 1 && an.Field[0] == paramsIdentifier {
+ c.updateIdentsIfNeeded(an.Field)
+ }
}
-
}
}
}
diff --git a/tpl/tplimpl/template_ast_transformers_test.go b/tpl/tplimpl/template_ast_transformers_test.go
index 52d8c17b1..45cf4399a 100644
--- a/tpl/tplimpl/template_ast_transformers_test.go
+++ b/tpl/tplimpl/template_ast_transformers_test.go
@@ -34,6 +34,13 @@ var (
"ByWeight": fmt.Sprintf("%v:%v:%v", seq, key, args),
}, nil
},
+ "site": func() interface{} {
+ return map[string]interface{}{
+ "Params": map[string]interface{}{
+ "lower": "global-site",
+ },
+ }
+ },
}
paramsData = map[string]interface{}{
@@ -154,6 +161,12 @@ PARAMS TIME: {{ $time.Format "2006-01-02" }}
{{ $_x := $.Params.MyDate | ToTime }}
PARAMS TIME2: {{ $_x.AddDate 0 1 0 }}
+
+PARAMS SITE GLOBAL1: {{ site.Params.LOwER }}
+{{ $lower := site.Params.LOwER }}
+{{ $site := site }}
+PARAMS SITE GLOBAL2: {{ $lower }}
+PARAMS SITE GLOBAL3: {{ $site.Params.LOWER }}
`
)
@@ -225,6 +238,11 @@ func TestParamsKeysToLower(t *testing.T) {
require.Contains(t, result, "PARAMS TIME: 1972-02-28")
require.Contains(t, result, "PARAMS TIME2: 1972-02-28")
+ // Issue ##5615
+ require.Contains(t, result, "PARAMS SITE GLOBAL1: global-site")
+ require.Contains(t, result, "PARAMS SITE GLOBAL2: global-site")
+ require.Contains(t, result, "PARAMS SITE GLOBAL3: global-site")
+
}
func BenchmarkTemplateParamsKeysToLower(b *testing.B) {