hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 634481ba8cfcd865ba0d8811d8834f6af45663d7
parent c19f65f956739ab76c38222d48a3e461525e31af
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Tue, 20 Jul 2021 11:32:50 +0200

Fix Params case handling for menu items defined in site config

Fixes #8775

Diffstat:
Mhugolib/menu_test.go | 60+++++++++++++++++++++++++++++++-----------------------------
Mnavigation/menu.go | 3++-
2 files changed, 33 insertions(+), 30 deletions(-)
diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go
@@ -351,49 +351,51 @@ menu:
 }
 
 func TestMenuParams(t *testing.T) {
-	b := newTestSitesBuilder(t).WithSimpleConfigFile()
+	b := newTestSitesBuilder(t).WithConfigFile("toml", `
+[[menus.main]]
+identifier = "contact"
+title = "Contact Us"
+url = "mailto:noreply@example.com"
+weight = 300
+[menus.main.params]
+foo = "foo_config"	
+key2 = "key2_config"	
+camelCase = "camelCase_config"	
+`)
 
 	b.WithTemplatesAdded("index.html", `
 Main: {{ len .Site.Menus.main }}
 {{ range .Site.Menus.main }}
-* Main|{{ .Name }}: {{ .URL }}|{{ .Params }}
+foo: {{ .Params.foo }}
+key2: {{ .Params.KEy2 }}
+camelCase: {{ .Params.camelcase }}
 {{ end }}
 `)
 
-	b.WithContent("blog/page1.md", `
----
-title: "P1"
-menu: main
----
-
-`)
-
-	b.WithContent("blog/page2.md", `
----
-title: "P2"
-menu: main
----
-
-`)
-
-	b.WithContent("blog/page3.md", `
+	b.WithContent("_index.md", `
 ---
-title: "P3"
+title: "Home"
 menu:
   main:
-    weight: 30
+    weight: 10
     params:
-      foo: "bar"
-      key2: "value2"
+      foo: "foo_content"
+      key2: "key2_content"
+      camelCase: "camelCase_content"
 ---
 `)
 
 	b.Build(BuildCfg{})
 
-	b.AssertFileContent("public/index.html",
-		"Main: 3",
-		"Main|P3: /blog/page3/|map[foo:bar key2:value2]",
-		"Main|P1: /blog/page1/|map[]",
-		"Main|P2: /blog/page2/|map[]",
-	)
+	b.AssertFileContent("public/index.html", `
+Main: 2
+
+foo: foo_content
+key2: key2_content
+camelCase: camelCase_content
+
+foo: foo_config
+key2: key2_config
+camelCase: camelCase_config
+`)
 }
diff --git a/navigation/menu.go b/navigation/menu.go
@@ -131,7 +131,8 @@ func (m *MenuEntry) MarshallMap(ime map[string]interface{}) {
 		case "parent":
 			m.Parent = cast.ToString(v)
 		case "params":
-			m.Params = maps.ToStringMap(v)
+			m.Params = maps.MustToParamsAndPrepare(v)
+
 		}
 	}
 }