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
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F

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) {