mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-22 21:42:50 +02:00
@@ -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))
|
||||
}
|
||||
|
@@ -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||",
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user