Fix lazy publishing with publishResources=false

Fixes #6914
This commit is contained in:
Bjørn Erik Pedersen 2020-02-19 17:37:20 +01:00
parent dce210ab56
commit 9bdedb251c
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
3 changed files with 34 additions and 1 deletions

View 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,
})
}

View 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`)
}

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