Fix site.GetPage, never do short lookups for paths with leadig slash - 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 8cf96f244ad710fa02c3f9729fef5a1bedb7632a
(DIR) parent 82af94d1f56b36a99be4f6c55697d105cee9dd84
(HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Thu, 4 Jul 2024 09:05:29 +0200
Fix site.GetPage, never do short lookups for paths with leadig slash
Fixes #12638
Diffstat:
M hugolib/pagecollections.go | 9 +--------
M hugolib/pagecollections_test.go | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 8 deletions(-)
---
(DIR) diff --git a/hugolib/pagecollections.go b/hugolib/pagecollections.go
@@ -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)
}
@@ -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 {
(DIR) diff --git a/hugolib/pagecollections_test.go b/hugolib/pagecollections_test.go
@@ -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 --