mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Fix site.GetPage, never do short lookups for paths with leadig slash
Fixes #12638
This commit is contained in:
parent
82af94d1f5
commit
8cf96f244a
2 changed files with 30 additions and 8 deletions
|
@ -110,11 +110,6 @@ func (c *pageFinder) getPageForRefs(ref ...string) (page.Page, error) {
|
||||||
key = refs[1]
|
key = refs[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
key = filepath.ToSlash(key)
|
|
||||||
if !strings.HasPrefix(key, "/") {
|
|
||||||
key = "/" + key
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.getPage(nil, key)
|
return c.getPage(nil, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,9 +206,7 @@ func (c *pageFinder) getContentNodeForRef(context page.Page, isReflink, hadExten
|
||||||
var doSimpleLookup bool
|
var doSimpleLookup bool
|
||||||
if isReflink || context == nil {
|
if isReflink || context == nil {
|
||||||
slashCount := strings.Count(inRef, "/")
|
slashCount := strings.Count(inRef, "/")
|
||||||
if slashCount <= 1 {
|
doSimpleLookup = slashCount == 0
|
||||||
doSimpleLookup = slashCount == 0 || ref[0] == '/'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !doSimpleLookup {
|
if !doSimpleLookup {
|
||||||
|
|
|
@ -413,6 +413,35 @@ layout: p2
|
||||||
b.AssertFileContent("public/s1/p2/index.html", "p1")
|
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) {
|
func TestGetPageBundleToRegular(t *testing.T) {
|
||||||
files := `
|
files := `
|
||||||
-- hugo.toml --
|
-- hugo.toml --
|
||||||
|
|
Loading…
Reference in a new issue