Fix lazy publishing with publishResources=false
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 19 Feb 2020 16:37:20 +0000 (17:37 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 19 Feb 2020 17:22:41 +0000 (18:22 +0100)
Fixes #6914

hugolib/content_map_page.go
hugolib/disableKinds_test.go
hugolib/page.go

index 5075095eaf0571258e1a68c5e3cef1bea9581051..ca84ee873ed14c7467fbd2bae3f3fb45fb50f761 100644 (file)
@@ -262,6 +262,7 @@ func (m *pageMap) newResource(fim hugofs.FileMetaInfo, owner *pageState) (resour
                        FileInfo:           fim,
                        RelTargetFilename:  target,
                        TargetBasePaths:    targetBasePaths,
+                       LazyPublish:        !owner.m.buildConfig.PublishResources,
                })
 }
 
index e814f4a5a780ac00de6d1196ff5ba54c4ecbc675..3d78e29f32b9e6cdb187af70aa4929ab2ec4bb79 100644 (file)
@@ -32,6 +32,7 @@ disableKinds = [%q]
 `, disableKind)
 
                b := newTestSitesBuilder(c)
+               b.WithTemplatesAdded("_default/single.html", `single`)
                b.WithConfigFile("toml", config).WithContent("sect/page.md", `
 ---
 title: Page
@@ -281,3 +282,32 @@ home = [ "HTML", "RSS" ]
        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`)
+}
index 12129d4ad9f5d1e0febca343af1ed19ba60e7120..e032f5adccb08ea9f252bc171c3cc8d33719fb8d 100644 (file)
@@ -258,7 +258,9 @@ func (p *pageState) sortResources() {
                        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()
        })
 }