]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix handling of draft term pages
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 17 Feb 2024 14:17:13 +0000 (15:17 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 17 Feb 2024 17:12:25 +0000 (18:12 +0100)
By just removing the term page and all of its page entries.

Fixes #12055

hugolib/content_map_page.go
hugolib/taxonomy_test.go

index 70e8a0bb6b3a361a6e90d7b830905d2ef90d8b48..d9cbddfba62b055b4b2ba2f5fd834b62a77ea773 100644 (file)
@@ -1415,8 +1415,10 @@ func (sa *sitePagesAssembler) applyAggregatesToTaxonomiesAndTerms() error {
                                        if err := p.setMetaPost(cascade); err != nil {
                                                return false, err
                                        }
-
-                                       if err := sa.pageMap.treeTaxonomyEntries.WalkPrefix(
+                                       if !p.s.shouldBuild(p) {
+                                               sa.pageMap.treePages.Delete(s)
+                                               sa.pageMap.treeTaxonomyEntries.DeletePrefix(paths.AddTrailingSlash(s))
+                                       } else if err := sa.pageMap.treeTaxonomyEntries.WalkPrefix(
                                                doctree.LockTypeRead,
                                                paths.AddTrailingSlash(s),
                                                func(ss string, wn *weightedContentNode) (bool, error) {
index 17e1b6cd4063ed14df84fd4c185433be25a66a04..8c29b781e48a2b7acc97a19f5b75955eeb8481a7 100644 (file)
@@ -835,3 +835,26 @@ tags: ["hellO world"]
 
        b.AssertFileContent("public/tags/hello-world/index.html", "HellO World|term|tag|tags|hellO world|")
 }
+
+func TestTermDraft(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- layouts/_default/list.html --
+|{{ .Title }}|
+-- content/p1.md --
+---
+title: p1
+tags: [a]
+---
+-- content/tags/a/_index.md --
+---
+title: tag-a-title-override
+draft: true
+---
+  `
+
+       b := Test(t, files)
+
+       b.AssertFileExists("public/tags/a/index.html", false)
+}