shithub: hugo

Download patch

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