Fix section page resource not published if resource filename partially matches content file name

Fixes #12198
This commit is contained in:
Bjørn Erik Pedersen 2024-03-07 08:34:00 +01:00
parent 0567a3e6f1
commit 4271b6be0f
2 changed files with 33 additions and 1 deletions

View file

@ -485,7 +485,7 @@ func (m *pageMap) forEachResourceInPage(
rw.Handle = func(resourceKey string, n contentNodeI, match doctree.DimensionFlag) (bool, error) { rw.Handle = func(resourceKey string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
if isBranch { if isBranch {
ownerKey, _ := m.treePages.LongestPrefixAll(resourceKey) ownerKey, _ := m.treePages.LongestPrefixAll(resourceKey)
if ownerKey != keyPage { if ownerKey != keyPage && path.Dir(ownerKey) != path.Dir(resourceKey) {
// Stop walking downwards, someone else owns this resource. // Stop walking downwards, someone else owns this resource.
rw.SkipPrefix(ownerKey + "/") rw.SkipPrefix(ownerKey + "/")
return false, nil return false, nil

View file

@ -326,3 +326,35 @@ R: {{ with $r }}{{ .Content }}{{ end }}|Len: {{ len $bundle.Resources }}|$
b.AssertFileContent("public/index.html", "R: Data 1.txt|", "Len: 1|") b.AssertFileContent("public/index.html", "R: Data 1.txt|", "Len: 1|")
} }
} }
func TestBundleResourcesNoPublishedIssue12198(t *testing.T) {
t.Parallel()
files := `
-- hugo.toml --
disableKinds = ['home','rss','sitemap','taxonomy','term']
-- content/s1/p1.md --
---
title: p1
---
-- content/s1/foo.txt --
foo.txt
-- content/s1/p1.txt --
p1.txt
-- content/s1/p1-foo.txt --
p1-foo.txt
-- layouts/_default/list.html --
{{.Title }}|
-- layouts/_default/single.html --
{{.Title }}|
`
b := Test(t, files)
b.Build()
b.AssertFileExists("public/s1/index.html", true)
b.AssertFileExists("public/s1/foo.txt", true)
b.AssertFileExists("public/s1/p1.txt", true) // failing test
b.AssertFileExists("public/s1/p1-foo.txt", true) // failing test
b.AssertFileExists("public/s1/p1/index.html", true)
}