URI: 
       Fix .Parent when there are overlapping regular pages inbetween - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit f1d755965fba9a8d99a4e423c6e231cf7411b4a2
   DIR parent 558f74f009d5bafd680958e511dc40f20dd0259a
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri, 15 Mar 2024 18:07:28 +0100
       
       Fix .Parent when there are overlapping regular pages inbetween
       
       Fixes #12263
       
       Diffstat:
         M hugolib/page__tree.go               |      13 +++++++++----
         M hugolib/site_sections_test.go       |      23 +++++++++++++++++++++++
       
       2 files changed, 32 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/hugolib/page__tree.go b/hugolib/page__tree.go
       @@ -124,11 +124,16 @@ func (pt pageTree) Parent() page.Page {
                        return pt.p.s.home
                }
        
       -        _, n := pt.p.s.pageMap.treePages.LongestPrefix(dir, true, nil)
       -        if n != nil {
       -                return n.(page.Page)
       +        for {
       +                _, n := pt.p.s.pageMap.treePages.LongestPrefix(dir, true, nil)
       +                if n == nil {
       +                        return pt.p.s.home
       +                }
       +                if pt.p.m.bundled || n.isContentNodeBranch() {
       +                        return n.(page.Page)
       +                }
       +                dir = paths.Dir(dir)
                }
       -        return nil
        }
        
        func (pt pageTree) Ancestors() page.Pages {
   DIR diff --git a/hugolib/site_sections_test.go b/hugolib/site_sections_test.go
       @@ -398,3 +398,26 @@ Kind: {{ .Kind }}|RelPermalink: {{ .RelPermalink }}|SectionsPath: {{ .SectionsPa
                b.AssertFileContent("public/a/b/c/mybundle/index.html", "Kind: page|RelPermalink: /a/b/c/mybundle/|SectionsPath: /a/b/c|SectionsEntries: [a b c]|Len: 3")
                b.AssertFileContent("public/index.html", "Kind: home|RelPermalink: /|SectionsPath: /|SectionsEntries: []|Len: 0")
        }
       +
       +func TestParentWithPageOverlap(t *testing.T) {
       +        files := `
       +-- hugo.toml --
       +baseURL = "https://example.com/"
       +-- content/docs/_index.md --
       +-- content/docs/logs/_index.md --
       +-- content/docs/logs/sdk.md --
       +-- content/docs/logs/sdk_exporters/stdout.md --
       +-- layouts/_default/list.html --
       +{{ .RelPermalink }}|{{ with .Parent}}{{ .RelPermalink }}{{ end }}|
       +-- layouts/_default/single.html --
       +{{ .RelPermalink }}|{{ with .Parent}}{{ .RelPermalink }}{{ end }}|
       +
       +`
       +        b := Test(t, files)
       +
       +        b.AssertFileContent("public/index.html", "/||")
       +        b.AssertFileContent("public/docs/index.html", "/docs/|/|")
       +        b.AssertFileContent("public/docs/logs/index.html", "/docs/logs/|/docs/|")
       +        b.AssertFileContent("public/docs/logs/sdk/index.html", "/docs/logs/sdk/|/docs/logs/|")
       +        b.AssertFileContent("public/docs/logs/sdk_exporters/stdout/index.html", "/docs/logs/sdk_exporters/stdout/|/docs/logs/|")
       +}