Skip to content

Commit

Permalink
Fix site.GetPage, never do short lookups for paths with leadig slash
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Jul 4, 2024
1 parent 82af94d commit ba8ccd6
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
9 changes: 1 addition & 8 deletions hugolib/pagecollections.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,6 @@ func (c *pageFinder) getPageForRefs(ref ...string) (page.Page, error) {
key = refs[1]
}

key = filepath.ToSlash(key)
if !strings.HasPrefix(key, "/") {
key = "/" + key
}

return c.getPage(nil, key)
}

Expand Down Expand Up @@ -211,9 +206,7 @@ func (c *pageFinder) getContentNodeForRef(context page.Page, isReflink, hadExten
var doSimpleLookup bool
if isReflink || context == nil {
slashCount := strings.Count(inRef, "/")
if slashCount <= 1 {
doSimpleLookup = slashCount == 0 || ref[0] == '/'
}
doSimpleLookup = slashCount == 0
}

if !doSimpleLookup {
Expand Down
29 changes: 29 additions & 0 deletions hugolib/pagecollections_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,35 @@ layout: p2
b.AssertFileContent("public/s1/p2/index.html", "p1")
}

func TestGetPageNewsVsTagsNewsIssue12638(t *testing.T) {
t.Parallel()

files := `
-- hugo.toml --
disableKinds = ['rss','section','sitemap']
[taxonomies]
tag = "tags"
-- content/p1.md --
---
title: p1
tags: [news]
---
-- layouts/index.html --
/tags/news: {{ with .Site.GetPage "/tags/news" }}{{ .Title }}{{ end }}|
news: {{ with .Site.GetPage "news" }}{{ .Title }}{{ end }}|
/news: {{ with .Site.GetPage "/news" }}{{ .Title }}{{ end }}|
`

b := Test(t, files)

b.AssertFileContent("public/index.html",
"/tags/news: News|",
"news: News|",
"/news: |",
)
}

func TestGetPageBundleToRegular(t *testing.T) {
files := `
-- hugo.toml --
Expand Down

0 comments on commit ba8ccd6

Please sign in to comment.