hugolib: Fix a .Page.GetPage from bundle case - 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 f521336c8147d00e9caa0b4ba4ab64bc43c69101
 (DIR) parent c4fe45ff4cb9080ee968ecc4e80e09df6c366608
 (HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri, 23 Feb 2024 09:37:05 +0100
       
       hugolib: Fix a .Page.GetPage from bundle case
       
       Fixes #12120
       
       Diffstat:
         M hugolib/pagecollections.go          |       9 ++-------
         M hugolib/pagecollections_test.go     |      27 +++++++++++++++++++++++++++
       
       2 files changed, 29 insertions(+), 7 deletions(-)
       ---
 (DIR) diff --git a/hugolib/pagecollections.go b/hugolib/pagecollections.go
       @@ -166,19 +166,14 @@ func (c *pageFinder) getContentNodeForRef(context page.Page, isReflink, hadExten
                        // Given the above, for regular pages we use the containing folder.
                        var baseDir string
                        if pi := context.PathInfo(); pi != nil {
       -                        if pi.IsBranchBundle() || (hadExtension) {
       +                        if pi.IsBranchBundle() || (hadExtension && strings.HasPrefix(ref, "../")) {
                                        baseDir = pi.Dir()
                                } else {
                                        baseDir = pi.ContainerDir()
                                }
                        }
        
       -                rel := path.Join(baseDir, inRef)
       -
       -                if !hadExtension && !paths.HasExt(rel) {
       -                        // See comment above.
       -                        rel += defaultContentExt
       -                }
       +                rel := path.Join(baseDir, ref)
        
                        relPath := contentPathParser.Parse(files.ComponentFolderContent, rel)
        
 (DIR) diff --git a/hugolib/pagecollections_test.go b/hugolib/pagecollections_test.go
       @@ -386,6 +386,33 @@ Home. {{ with .Page.GetPage "p1.xyz" }}{{ else }}OK 1{{ end }} {{ with .Site.Get
                b.AssertFileContent("public/index.html", "Home. OK 1 OK 2")
        }
        
       +func TestGetPageIssue12120(t *testing.T) {
       +        t.Parallel()
       +
       +        files := `
       +-- hugo.toml --
       +disableKinds = ['home','rss','section','sitemap','taxonomy','term']
       +-- content/s1/p1/index.md --
       +---
       +title: p1
       +layout: p1
       +---
       +-- content/s1/p2.md --
       +---
       +title: p2
       +layout: p2
       +---
       +-- layouts/_default/p1.html --
       +{{ (.GetPage "p2.md").Title }}|
       +-- layouts/_default/p2.html --
       +{{ (.GetPage "p1").Title }}|
       +`
       +
       +        b := Test(t, files)
       +        b.AssertFileContent("public/s1/p1/index.html", "p2") // failing test
       +        b.AssertFileContent("public/s1/p2/index.html", "p1")
       +}
       +
        func TestGetPageBundleToRegular(t *testing.T) {
                files := `
        -- hugo.toml --