Fix section page resource not published if resource filename partially matches content file name - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit 4271b6be0fe18ffdd8dd1bf74e996d339b2fb209
(DIR) parent 0567a3e6f1c03be45ee3dc9ae79e6f791dfa289f
(HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Thu, 7 Mar 2024 08:34:00 +0100
Fix section page resource not published if resource filename partially matches content file name
Fixes #12198
Diffstat:
M hugolib/content_map_page.go | 2 +-
M hugolib/content_map_test.go | 32 +++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
@@ -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
(DIR) diff --git a/hugolib/content_map_test.go b/hugolib/content_map_test.go
@@ -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)
+}