Fix Params case handling in the new site global
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 18 Jan 2019 17:48:19 +0000 (17:48 +0000)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 20 Jan 2019 12:42:24 +0000 (12:42 +0000)
Fixes #5615

hugolib/case_insensitive_test.go
tpl/tplimpl/template_ast_transformers.go
tpl/tplimpl/template_ast_transformers_test.go

index f3ba5f933ac84fb26bead492fbfc1bea242f3301..8c94bf5db0af07c08fbe5ad4afe25ded22dcb1cd 100644 (file)
@@ -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
index 1e158930881faae8fca1fd96f8f7ea5dc0156e2a..f32b189ffbc7b5a1ec82c8b113af96e9d1addead 100644 (file)
@@ -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)
+                               }
                        }
-
                }
        }
 }
index 52d8c17b116261a7340a77ab91a5e5846b11d532..45cf4399a9b77c8a29dfaa6abb0dc3bb931116df 100644 (file)
@@ -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) {