diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-05-29 13:23:36 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-05-30 11:29:21 +0200 |
commit | 245928a1ff49c6a1c25524f08bf538b0ab88f1a8 (patch) | |
tree | 1fa4d9ffe812f4f78eebc43f114b3dcc2b0442a0 /hugolib | |
parent | 519f41dbd72d4b13208225ab5b28c6d98ecb07ba (diff) | |
download | hugo-245928a1ff49c6a1c25524f08bf538b0ab88f1a8.tar.gz hugo-245928a1ff49c6a1c25524f08bf538b0ab88f1a8.zip |
content adapter: Add support for menus in AddPage
Fixes #12507
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/page__menus.go | 16 | ||||
-rw-r--r-- | hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go | 28 |
2 files changed, 43 insertions, 1 deletions
diff --git a/hugolib/page__menus.go b/hugolib/page__menus.go index 5bed2bc03..1666036ce 100644 --- a/hugolib/page__menus.go +++ b/hugolib/page__menus.go @@ -62,8 +62,22 @@ func (p *pageMenus) init() { p.p, ) + params := p.p.Params() + + var menus any + var ok bool + + if p.p.m.pageConfig.Menus != nil { + menus = p.p.m.pageConfig.Menus + } else { + menus, ok = params["menus"] + if !ok { + menus = params["menu"] + } + } + var err error - p.pm, err = navigation.PageMenusFromPage(p.p) + p.pm, err = navigation.PageMenusFromPage(menus, p.p) if err != nil { p.p.s.Log.Errorln(p.p.wrapError(err)) } diff --git a/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go b/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go index c7e3d96c7..3a37c233b 100644 --- a/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go +++ b/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go @@ -610,3 +610,31 @@ foo b.AssertFileContent("public/a/index.html", "|xfoo|") b.AssertFileContent("public/b/index.html", "|foo|") // fails } + +func TestPagesFromGoTmplMenus(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['rss','section','sitemap','taxonomy','term'] + +[menus] +[[menus.main]] +name = "Main" +[[menus.footer]] +name = "Footer" +-- content/_content.gotmpl -- +{{ .AddPage (dict "path" "p1" "title" "p1" "menus" "main" ) }} +{{ .AddPage (dict "path" "p2" "title" "p2" "menus" (slice "main" "footer")) }} +-- layouts/index.html -- +Main: {{ range index site.Menus.main }}{{ .Name }}|{{ end }}| +Footer: {{ range index site.Menus.footer }}{{ .Name }}|{{ end }}| + +` + b := hugolib.Test(t, files) + + b.AssertFileContent("public/index.html", + "Main: Main|p1|p2||", + "Footer: Footer|p2||", + ) +} |