shithub: hugo

Download patch

ref: 9bdedb251c7cd8f8af800c7d9914cf84292c5c50
parent: dce210ab56fc885818fc5d1a084a1c3ba84e7929
author: Bjørn Erik Pedersen <[email protected]>
date: Wed Feb 19 12:37:20 EST 2020

Fix lazy publishing with publishResources=false

Fixes #6914

--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -262,6 +262,7 @@
 			FileInfo:           fim,
 			RelTargetFilename:  target,
 			TargetBasePaths:    targetBasePaths,
+			LazyPublish:        !owner.m.buildConfig.PublishResources,
 		})
 }
 
--- a/hugolib/disableKinds_test.go
+++ b/hugolib/disableKinds_test.go
@@ -32,6 +32,7 @@
 `, disableKind)
 
 		b := newTestSitesBuilder(c)
+		b.WithTemplatesAdded("_default/single.html", `single`)
 		b.WithConfigFile("toml", config).WithContent("sect/page.md", `
 ---
 title: Page
@@ -280,4 +281,33 @@
 	// but we should make sure to not break existing sites.
 	b.Assert(b.CheckExists("public/index.xml"), qt.Equals, false)
 
+}
+
+func TestBundleNoPublishResources(t *testing.T) {
+	b := newTestSitesBuilder(t)
+	b.WithTemplates("index.html", `
+{{ $bundle := site.GetPage "section/bundle-false" }}
+{{ $data1 := $bundle.Resources.GetMatch "data1*" }}
+Data1: {{ $data1.RelPermalink }}
+
+`)
+
+	b.WithContent("section/bundle-false/index.md", `---\ntitle: BundleFalse
+_build:
+  publishResources: false
+---`,
+		"section/bundle-false/data1.json", "Some data1",
+		"section/bundle-false/data2.json", "Some data2",
+	)
+
+	b.WithContent("section/bundle-true/index.md", `---\ntitle: BundleTrue
+---`,
+		"section/bundle-true/data3.json", "Some data 3",
+	)
+
+	b.Build(BuildCfg{})
+	b.AssertFileContent("public/index.html", `Data1: /section/bundle-false/data1.json`)
+	b.AssertFileContent("public/section/bundle-false/data1.json", `Some data1`)
+	b.Assert(b.CheckExists("public/section/bundle-false/data2.json"), qt.Equals, false)
+	b.AssertFileContent("public/section/bundle-true/data3.json", `Some data 3`)
 }
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -258,7 +258,9 @@
 			return page.DefaultPageSort(p1, p2)
 		}
 
-		return ri.RelPermalink() < rj.RelPermalink()
+		// Make sure not to use RelPermalink or any of the other methods that
+		// trigger lazy publishing.
+		return ri.Name() < rj.Name()
 	})
 }