Fix sectionPagesMenu for pages in root level - hugo - [fork] hugo port for 9front
 (HTM) git clone git@git.drkhsh.at/hugo.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 488b21d15b51f19f790922311ec13b16d784e1f7
 (DIR) parent 4500b0e423a2c58e6e54526d0d02d2924cc774b6
 (HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri,  5 Apr 2024 12:00:38 +0200
       
       Fix sectionPagesMenu for pages in root level
       
       Fixes #12306
       
       Diffstat:
         M hugolib/menu_test.go                |      40 +++++++++++++++++++++++++++++++
         M hugolib/site.go                     |       7 +++++++
       
       2 files changed, 47 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go
       @@ -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")
       +}
 (DIR) diff --git a/hugolib/site.go b/hugolib/site.go
       @@ -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,6 +676,7 @@ func (s *Site) assembleMenus() error {
                                        },
                                        Page: p,
                                }
       +
                                navigation.SetPageValues(&me, p)
                                flat[twoD{sectionPagesMenu, me.KeyName()}] = &me
                                return false, nil
       @@ -678,6 +684,7 @@ func (s *Site) assembleMenus() error {
                                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() {