Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fix Params case handling for menu items defined in site config
- Loading branch information
Showing
with
33 additions
and
30 deletions.
-
+31
−29
hugolib/menu_test.go
-
+2
−1
navigation/menu.go
There are no files selected for viewing
|
|
@@ -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 |
|
|
`) |
|
|
} |
|
|
@@ -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) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|