diff --git a/common/paths/pathparser.go b/common/paths/pathparser.go index 8b9259bf7..1cae710e8 100644 --- a/common/paths/pathparser.go +++ b/common/paths/pathparser.go @@ -640,7 +640,7 @@ func (p *Path) Base() string { // For pages with Type set, we treat that as the section. func (p *Path) BaseReTyped(typ string) (d string) { base := p.Base() - if p.Section() == typ { + if typ == "" || p.Section() == typ { return base } d = "/" + typ diff --git a/hugolib/page.go b/hugolib/page.go index 5387c021d..7ffb7cdfb 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -479,7 +479,7 @@ func (ps *pageState) initCommonProviders(pp pagePaths) error { func (po *pageOutput) GetInternalTemplateBasePathAndDescriptor() (string, tplimpl.TemplateDescriptor) { p := po.p f := po.f - base := p.PathInfo().BaseReTyped(p.m.Type()) + base := p.PathInfo().BaseReTyped(p.m.pageConfig.Type) return base, tplimpl.TemplateDescriptor{ Kind: p.Kind(), Lang: p.Language().Lang, diff --git a/hugolib/page_test.go b/hugolib/page_test.go index d4185531b..1da67e58f 100644 --- a/hugolib/page_test.go +++ b/hugolib/page_test.go @@ -2000,61 +2000,3 @@ title: home en b.AssertLogContains("Using index.de.md in your content's root directory is usually incorrect for your home page. You should use _index.de.md instead.") b.AssertLogContains("Using index.en.org in your content's root directory is usually incorrect for your home page. You should use _index.en.org instead.") } - -// Issue 13826 -func TestTemplateSelectionIssue13826(t *testing.T) { - t.Parallel() - - files := ` --- hugo.toml -- -disableKinds = ['home','rss','section','sitemap','taxonomy','term'] --- content/p1.md -- ---- -title: p1 (type implicitly set to page) ---- --- content/p2.md -- ---- -title: p2 (type explicitly set to page) -type: page ---- --- content/p3.md -- ---- -title: p3 (type explicitly set to foo) -type: foo ---- --- content/foo/p4.md -- ---- -title: p4 (type implicitly set to foo) ---- --- content/bar/p5.md -- ---- -title: p5 (type explicitly set to foo) -type: foo ---- --- layouts/page/page.html -- -layouts/page/page.html --- layouts/foo/page.html -- -layouts/foo/page.html --- layouts/page.html -- -layouts/page.html -` - - b := Test(t, files) - - b.AssertFileContent("public/p1/index.html", "layouts/page/page.html") - b.AssertFileContent("public/p2/index.html", "layouts/page/page.html") - b.AssertFileContent("public/p3/index.html", "layouts/foo/page.html") - b.AssertFileContent("public/foo/p4/index.html", "layouts/foo/page.html") - b.AssertFileContent("public/bar/p5/index.html", "layouts/foo/page.html") - - files = strings.ReplaceAll(files, "-- layouts/page/page.html --", "-- delete-me-1.txt --") - files = strings.ReplaceAll(files, "-- layouts/foo/page.html --", "-- delete-me-2.txt --") - - b = Test(t, files) - - b.AssertFileContent("public/p1/index.html", "layouts/page.html") - b.AssertFileContent("public/p2/index.html", "layouts/page.html") - b.AssertFileContent("public/p3/index.html", "layouts/page.html") - b.AssertFileContent("public/foo/p4/index.html", "layouts/page.html") - b.AssertFileContent("public/bar/p5/index.html", "layouts/page.html") -}