hugolib: Honor implicit "page" type during template selection

Closes #13826
This commit is contained in:
Joe Mooring
2025-07-02 03:05:40 -07:00
committed by Bjørn Erik Pedersen
parent dd6e2c8724
commit cfc8d315b4
3 changed files with 60 additions and 2 deletions

View File

@@ -2000,3 +2000,61 @@ 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")
}