]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Support menus as maps in content adapters
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 13 Feb 2025 10:42:42 +0000 (11:42 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 13 Feb 2025 12:29:24 +0000 (13:29 +0100)
Fixes #13384

hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go
resources/page/pagemeta/page_frontmatter.go

index 64ee7039731b06b4cefd17379e15d36f5b7cf846..e1d562d4d21117c604cf9f25adc47f10f3613603 100644 (file)
@@ -653,6 +653,34 @@ Footer: {{ range index site.Menus.footer }}{{ .Name }}|{{ end }}|
        )
 }
 
+// Issue 13384.
+func TestPagesFromGoTmplMenusMap(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+disableKinds = ['rss','section','sitemap','taxonomy','term']
+-- content/_content.gotmpl --
+{{ $menu1 := dict 
+    "parent" "main-page"
+    "identifier" "id1"
+}}
+{{ $menu2 := dict 
+    "parent" "main-page"
+    "identifier" "id2"
+}}
+{{ $menus := dict "m1" $menu1 "m2" $menu2 }}
+{{ .AddPage (dict "path" "p1" "title" "p1" "menus" $menus ) }}
+
+-- layouts/index.html --
+Menus: {{ range $k, $v := site.Menus }}{{ $k }}|{{ end }}
+
+`
+       b := hugolib.Test(t, files)
+
+       b.AssertFileContent("public/index.html", "Menus: m1|m2|")
+}
+
 func TestPagesFromGoTmplMore(t *testing.T) {
        t.Parallel()
 
index 60ba0e00a04b7cdf496407215df8116d0741b3b8..c26662fc2c166f322502fdc45eef7e10fc9b137e 100644 (file)
@@ -105,7 +105,7 @@ type PageConfig struct {
        Cascade []map[string]any
        Sitemap config.SitemapConfig
        Build   BuildConfig
-       Menus   []string
+       Menus   any // Can be a string, []string or map[string]any.
 
        // User defined params.
        Params maps.Params