diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-03-15 18:07:28 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-03-16 14:48:04 +0100 |
commit | f1d755965fba9a8d99a4e423c6e231cf7411b4a2 (patch) | |
tree | c38d9058e2a46a53ab8cafa0af5576b7a74d56bf /hugolib/page__tree.go | |
parent | 558f74f009d5bafd680958e511dc40f20dd0259a (diff) | |
download | hugo-f1d755965fba9a8d99a4e423c6e231cf7411b4a2.tar.gz hugo-f1d755965fba9a8d99a4e423c6e231cf7411b4a2.zip |
Fix .Parent when there are overlapping regular pages inbetween
Fixes #12263
Diffstat (limited to 'hugolib/page__tree.go')
-rw-r--r-- | hugolib/page__tree.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/hugolib/page__tree.go b/hugolib/page__tree.go index e54d596bc..cccfb8904 100644 --- 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 { |