Skip to content
Permalink
Browse files

hugolib: Fix taxonomies vs expired

In Hugo 0.57 we needed to delay the page metadata initialization until we had built the page graph.

This introduced a regression in that we now created taxonomy entries for expired pages.

This fixes that by moving the "should not build" filter before we assemble the taxonomies.

Fixes #6213
  • Loading branch information...
bep committed Aug 15, 2019
1 parent ea9261e commit 9475f61a377fcf23f910cbfd4ddca59261326665
Showing with 43 additions and 8 deletions.
  1. +0 −8 hugolib/pagecollections.go
  2. +11 −0 hugolib/pages_map.go
  3. +32 −0 hugolib/taxonomy_test.go
@@ -466,14 +466,6 @@ func (c *PageCollections) createWorkAllPages() error {
}
}

tmp := bucket.pages[:0]
for _, x := range bucket.pages {
if c.pagesMap.s.shouldBuild(x) {
tmp = append(tmp, x)
}
}
bucket.pages = tmp

if bucket.isEmpty() {
if bucket.owner.IsSection() && bucket.owner.File().IsZero() {
// Check for any nested section.
@@ -100,6 +100,17 @@ func (m *pagesMap) initPageMetaFor(prefix string, bucket *pagesMapBucket) error
}
}
}

// Now that the metadata is initialized (with dates, draft set etc.)
// we can remove the pages that we for some reason should not include
// in this build.
tmp := bucket.pages[:0]
for _, x := range bucket.pages {
if m.s.shouldBuild(x) {
tmp = append(tmp, x)
}
}
bucket.pages = tmp
}

return nil
@@ -320,3 +320,35 @@ Content.
b.AssertFileContent("public/tags/index.html", `<li><a href="http://example.com/tags/rocks-i-say/">Rocks I say!</a> 10</li>`)

}

// Issue 6213
func TestTaxonomiesNotForDrafts(t *testing.T) {
t.Parallel()

b := newTestSitesBuilder(t)
b.WithContent("draft.md", `---
title: "Draft"
draft: true
categories: ["drafts"]
---
`,
"regular.md", `---
title: "Not Draft"
categories: ["regular"]
---
`)

b.Build(BuildCfg{})
s := b.H.Sites[0]

b.Assert(b.CheckExists("public/categories/regular/index.html"), qt.Equals, true)
b.Assert(b.CheckExists("public/categories/drafts/index.html"), qt.Equals, false)

reg, _ := s.getPageNew(nil, "categories/regular")
dra, _ := s.getPageNew(nil, "categories/draft")
b.Assert(reg, qt.Not(qt.IsNil))
b.Assert(dra, qt.IsNil)

}

0 comments on commit 9475f61

Please sign in to comment.
You can’t perform that action at this time.