ref: a70bbd0696df3b0a6889650e48a07f8223151da4
parent: 24afe2b822b458bae8f2ca9a9e095339f820a2f6
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Feb 20 08:40:16 EST 2020
hugolib: Fix deletion of orphaned sections Avoid deleting inside the recursive walk. Fixes #6920
--- a/hugolib/content_map.go
+++ b/hugolib/content_map.go
@@ -596,6 +596,7 @@
// 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 @@
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) {