Skip to content

Commit

Permalink
Fix section page resource not published if resource filename partiall…
Browse files Browse the repository at this point in the history
…y matches content file name

Fixes gohugoio#12198
  • Loading branch information
bep committed Mar 7, 2024
1 parent 97b00f5 commit 18efcb1
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion hugolib/content_map_page.go
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ func (m *pageMap) forEachResourceInPage(
rw.Handle = func(resourceKey string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
if isBranch {
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.
rw.SkipPrefix(ownerKey + "/")
return false, nil
Expand Down
32 changes: 32 additions & 0 deletions hugolib/content_map_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -326,3 +326,35 @@ R: {{ with $r }}{{ .Content }}{{ end }}|Len: {{ len $bundle.Resources }}|$
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)
}

0 comments on commit 18efcb1

Please sign in to comment.