Skip to content

Commit

Permalink
hugolib: Fix a .Page.GetPage from bundle case
Browse files Browse the repository at this point in the history
Fixes #12120
  • Loading branch information
bep committed Feb 23, 2024
1 parent c4fe45f commit f521336
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
9 changes: 2 additions & 7 deletions hugolib/pagecollections.go
Expand Up @@ -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)

Expand Down
27 changes: 27 additions & 0 deletions hugolib/pagecollections_test.go
Expand Up @@ -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 --
Expand Down

0 comments on commit f521336

Please sign in to comment.