hugolib: Fix deletion of orphaned sections

Avoid deleting inside the recursive walk.

Fixes #6920
This commit is contained in:
Bjørn Erik Pedersen
2020-02-20 13:40:16 +01:00
parent 24afe2b822
commit a70bbd0696

View File

@@ -596,6 +596,7 @@ func (m *contentMap) deleteBundleMatching(matches func(b *contentNode) bool) {
// Deletes any empty root section that's not backed by a content file.
func (m *contentMap) deleteOrphanSections() {
var sectionsToDelete []string
m.sections.Walk(func(s string, v interface{}) bool {
n := v.(*contentNode)
@@ -612,11 +613,15 @@ func (m *contentMap) deleteOrphanSections() {
prefixBundle := s + cmBranchSeparator
if !(m.sections.hasPrefix(s+"/") || m.pages.hasPrefix(prefixBundle) || m.resources.hasPrefix(prefixBundle)) {
m.sections.Delete(s)
sectionsToDelete = append(sectionsToDelete, s)
}
return false
})
for _, s := range sectionsToDelete {
m.sections.Delete(s)
}
}
func (m *contentMap) deletePage(s string) {