aboutsummaryrefslogtreecommitdiffhomepage
path: root/hugolib/page__tree.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2024-03-15 18:07:28 +0100
committerBjørn Erik Pedersen <[email protected]>2024-03-16 14:48:04 +0100
commitf1d755965fba9a8d99a4e423c6e231cf7411b4a2 (patch)
treec38d9058e2a46a53ab8cafa0af5576b7a74d56bf /hugolib/page__tree.go
parent558f74f009d5bafd680958e511dc40f20dd0259a (diff)
downloadhugo-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.go13
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 {