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()
})
}