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)
       +}