Skip to content

Commit

Permalink
Showing 2 changed files with 47 additions and 0 deletions.
40 changes: 40 additions & 0 deletions hugolib/menu_test.go
Original file line number Diff line number Diff line change
@@ -636,3 +636,43 @@ Menu Item: {{ $i }}|{{ .URL }}|
Menu Item: 0|/foo/posts|
`)
}

func TestSectionPagesMenuMultilingualWarningIssue12306(t *testing.T) {
t.Parallel()

files := `
-- hugo.toml --
disableKinds = ['section','rss','sitemap','taxonomy','term']
defaultContentLanguageInSubdir = true
sectionPagesMenu = "main"
[languages.en]
[languages.fr]
-- layouts/_default/home.html --
{{- range site.Menus.main -}}
<a href="{{ .URL }}">{{ .Name }}</a>
{{- end -}}
-- layouts/_default/single.html --
{{ .Title }}
-- content/p1.en.md --
---
title: p1
menu: main
---
-- content/p1.fr.md --
---
title: p1
menu: main
---
-- content/p2.en.md --
---
title: p2
menu: main
---
`

b := Test(t, files, TestOptWarn())

b.AssertFileContent("public/en/index.html", `<a href="/en/p1/">p1</a><a href="/en/p2/">p2</a>`)
b.AssertFileContent("public/fr/index.html", `<a href="/fr/p1/">p1</a>`)
b.AssertLogNotContains("WARN")
}
7 changes: 7 additions & 0 deletions hugolib/site.go
Original file line number Diff line number Diff line change
@@ -658,8 +658,13 @@ func (s *Site) assembleMenus() error {
if p.IsHome() || !p.m.shouldBeCheckedForMenuDefinitions() {
return false, nil
}

// The section pages menus are attached to the top level section.
id := p.Section()
if id == "" {
id = "/"
}

if _, ok := flat[twoD{sectionPagesMenu, id}]; ok {
return false, nil
}
@@ -671,13 +676,15 @@ func (s *Site) assembleMenus() error {
},
Page: p,
}

navigation.SetPageValues(&me, p)
flat[twoD{sectionPagesMenu, me.KeyName()}] = &me
return false, nil
}); err != nil {
return err
}
}

// Add menu entries provided by pages
if err := s.pageMap.forEachPage(pagePredicates.ShouldListGlobal, func(p *pageState) (bool, error) {
for name, me := range p.pageMenus.menus() {

0 comments on commit 488b21d

Please sign in to comment.