shithub: hugo

Download patch

ref: d1d1f240a25945b37eebe8a9a3f439f290832b33
parent: 70a1aa345b95bcf325f19c6e7184bcd6f885e454
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sun Nov 10 08:36:33 EST 2019

hubolib: Headless bundles should not be listed in .Pages

Fixes #6492

--- a/hugolib/pagebundler_test.go
+++ b/hugolib/pagebundler_test.go
@@ -579,6 +579,12 @@
 	// But the bundled resources needs to be published
 	th.assertFileContent(filepath.FromSlash(workDir+"/public/s2/l1.png"), "PNG")
 
+	// No headless bundles here, please.
+	// https://github.com/gohugoio/hugo/issues/6492
+	c.Assert(s.RegularPages(), qt.HasLen, 1)
+	c.Assert(s.home.RegularPages(), qt.HasLen, 1)
+	c.Assert(s.home.Pages(), qt.HasLen, 1)
+
 }
 
 func TestMultiSiteBundles(t *testing.T) {
--- a/hugolib/pagecollections.go
+++ b/hugolib/pagecollections.go
@@ -490,14 +490,15 @@
 		}
 
 		if !bucket.view {
+			for _, p := range bucket.headlessPages {
+				ps := p.(*pageState)
+				ps.parent = bucket.owner
+				c.headlessPages = append(c.headlessPages, ps)
+			}
 			for _, p := range bucket.pages {
 				ps := p.(*pageState)
 				ps.parent = bucket.owner
-				if ps.m.headless {
-					c.headlessPages = append(c.headlessPages, ps)
-				} else {
-					c.workAllPages = append(c.workAllPages, ps)
-				}
+				c.workAllPages = append(c.workAllPages, ps)
 
 				if homeDates != nil {
 					homeDates.UpdateDateAndLastmodIfAfter(ps)
--- a/hugolib/pages_map.go
+++ b/hugolib/pages_map.go
@@ -107,7 +107,12 @@
 		tmp := bucket.pages[:0]
 		for _, x := range bucket.pages {
 			if m.s.shouldBuild(x) {
-				tmp = append(tmp, x)
+				if x.(*pageState).m.headless {
+					bucket.headlessPages = append(bucket.headlessPages, x)
+				} else {
+					tmp = append(tmp, x)
+				}
+
 			}
 		}
 		bucket.pages = tmp
@@ -410,8 +415,9 @@
 	parent         *pagesMapBucket
 	bucketSections []*pagesMapBucket
 
-	pagesInit sync.Once
-	pages     page.Pages
+	pagesInit     sync.Once
+	pages         page.Pages
+	headlessPages page.Pages
 
 	pagesAndSectionsInit sync.Once
 	pagesAndSections     page.Pages