hugolib: Fix draft etc. handling of _index.md pages - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 6ccf50ea7bb291bcbe1d56a4d697a6fd57a9c629
DIR parent 67524c993623871626f0f22e6a2ac705a816a959
HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Thu, 15 Aug 2019 18:25:21 +0200
hugolib: Fix draft etc. handling of _index.md pages
We will need to revisit this with a proper spec, but this commit makes sure that draft/expiryDate etc. set in front matter on _index.md content files that should disable the page will:
* Not crash
* Make the rendered page not render any `.Content`.
Fixes #6222
Fixes #6210
Diffstat:
M hugolib/page__per_output.go | 4 ++++
M hugolib/taxonomy_test.go | 30 ++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 0 deletions(-)
---
DIR diff --git a/hugolib/page__per_output.go b/hugolib/page__per_output.go
@@ -67,6 +67,10 @@ func newPageContentOutput(p *pageState) func(f output.Format) (*pageContentOutpu
}
initContent := func() (err error) {
+ if p.cmap == nil {
+ // Nothing to do.
+ return nil
+ }
defer func() {
// See https://github.com/gohugoio/hugo/issues/6210
if r := recover(); r != nil {
DIR diff --git a/hugolib/taxonomy_test.go b/hugolib/taxonomy_test.go
@@ -352,3 +352,33 @@ categories: ["regular"]
b.Assert(dra, qt.IsNil)
}
+
+// See https://github.com/gohugoio/hugo/issues/6222
+// We need to revisit this once we figure out what to do with the
+// draft etc _index pages, but for now we need to avoid the crash.
+func TestTaxonomiesIndexDraft(t *testing.T) {
+ t.Parallel()
+
+ b := newTestSitesBuilder(t)
+ b.WithContent(
+ "categories/_index.md", `---
+title: "The Categories"
+draft: true
+---
+
+This is the invisible content.
+
+`)
+
+ b.WithTemplates("index.html", `
+{{ range .Site.Pages }}
+{{ .RelPermalink }}|{{ .Title }}|{{ .WordCount }}|{{ .Content }}|
+{{ end }}
+`)
+
+ b.Build(BuildCfg{})
+
+ // We publish the index page, but the content will be empty.
+ b.AssertFileContent("public/index.html", " /categories/|The Categories|0||")
+
+}