mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
parent
519f41dbd7
commit
245928a1ff
5 changed files with 50 additions and 16 deletions
|
@ -62,8 +62,22 @@ func (p *pageMenus) init() {
|
||||||
p.p,
|
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
|
var err error
|
||||||
p.pm, err = navigation.PageMenusFromPage(p.p)
|
p.pm, err = navigation.PageMenusFromPage(menus, p.p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.p.s.Log.Errorln(p.p.wrapError(err))
|
p.p.s.Log.Errorln(p.p.wrapError(err))
|
||||||
}
|
}
|
||||||
|
|
|
@ -610,3 +610,31 @@ foo
|
||||||
b.AssertFileContent("public/a/index.html", "|xfoo|")
|
b.AssertFileContent("public/a/index.html", "|xfoo|")
|
||||||
b.AssertFileContent("public/b/index.html", "|foo|") // fails
|
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||",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -167,19 +167,19 @@ func testGoFlags() string {
|
||||||
// Note that we don't run with the extended tag. Currently not supported in 32 bit.
|
// Note that we don't run with the extended tag. Currently not supported in 32 bit.
|
||||||
func Test386() error {
|
func Test386() error {
|
||||||
env := map[string]string{"GOARCH": "386", "GOFLAGS": testGoFlags()}
|
env := map[string]string{"GOARCH": "386", "GOFLAGS": testGoFlags()}
|
||||||
return runCmd(env, goexe, "test", "./...")
|
return runCmd(env, goexe, "test", "-p", "2", "./...")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run tests
|
// Run tests
|
||||||
func Test() error {
|
func Test() error {
|
||||||
env := map[string]string{"GOFLAGS": testGoFlags()}
|
env := map[string]string{"GOFLAGS": testGoFlags()}
|
||||||
return runCmd(env, goexe, "test", "./...", "-tags", buildTags())
|
return runCmd(env, goexe, "test", "-p", "2", "./...", "-tags", buildTags())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run tests with race detector
|
// Run tests with race detector
|
||||||
func TestRace() error {
|
func TestRace() error {
|
||||||
env := map[string]string{"GOFLAGS": testGoFlags()}
|
env := map[string]string{"GOFLAGS": testGoFlags()}
|
||||||
return runCmd(env, goexe, "test", "-race", "./...", "-tags", buildTags())
|
return runCmd(env, goexe, "test", "-p", "2", "-race", "./...", "-tags", buildTags())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run gofmt linter
|
// Run gofmt linter
|
||||||
|
|
|
@ -41,20 +41,11 @@ type MenuQueryProvider interface {
|
||||||
IsMenuCurrent(menuID string, inme *MenuEntry) bool
|
IsMenuCurrent(menuID string, inme *MenuEntry) bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func PageMenusFromPage(p Page) (PageMenus, error) {
|
func PageMenusFromPage(ms any, p Page) (PageMenus, error) {
|
||||||
params := p.Params()
|
if ms == nil {
|
||||||
|
|
||||||
ms, ok := params["menus"]
|
|
||||||
if !ok {
|
|
||||||
ms, ok = params["menu"]
|
|
||||||
}
|
|
||||||
|
|
||||||
pm := PageMenus{}
|
|
||||||
|
|
||||||
if !ok {
|
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
pm := PageMenus{}
|
||||||
me := MenuEntry{}
|
me := MenuEntry{}
|
||||||
SetPageValues(&me, p)
|
SetPageValues(&me, p)
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,7 @@ type PageConfig struct {
|
||||||
Cascade []map[string]any
|
Cascade []map[string]any
|
||||||
Sitemap config.SitemapConfig
|
Sitemap config.SitemapConfig
|
||||||
Build BuildConfig
|
Build BuildConfig
|
||||||
|
Menus []string
|
||||||
|
|
||||||
// User defined params.
|
// User defined params.
|
||||||
Params maps.Params
|
Params maps.Params
|
||||||
|
|
Loading…
Reference in a new issue