Open tobias-sundermann opened 6 months ago
This problem was introduced in v0.123.0. Failing test:
func TestFoo(t *testing.T) {
t.Parallel()
files := `
-- hugo.toml --
disableKinds = ['home','rss','sitemap','taxonomy','term']
-- layouts/_default/list.html --
{{ .Title }}
-- layouts/_default/single.html --
{{ .Title }}
-- content/s/_index.md --
---
title: s
cascade:
_build:
render: never
---
-- content/s/p1.md --
---
title: p1
---
-- content/sx/_index.md --
---
title: sx
---
-- content/sx/p2.md --
---
title: p2
---
`
b := hugolib.Test(t, files)
b.AssertFileExists("public/s/index.html", false)
b.AssertFileExists("public/s/p1/index.html", false)
b.AssertFileExists("public/sx/index.html", true) // failing
b.AssertFileExists("public/sx/p2/index.html", true) // failing
}
@tobias-sundermann
You can work around this by removing the cascade from matter, and specify the cascade in your site configuration instead:
[[cascade]]
[cascade.build]
render = 'never'
[cascade._target]
path = '{/s,/s/**}'
This will suppress rendering of all pages in the given section, including the section page itself.
What version of Hugo are you using (
hugo version
)?Tested versions: Hugo extended windows-amd64 versions 0.123.0 - 0.125.6
Does this issue reproduce with the latest release?
Yes
Bug description
Cascade property affects the next page with similar name. We use cascade in one of our pages (/team) to prevent rendering its children separately. But the cascade property affects the next following page (/teams).
File setup
/content ├ /de │├ /... │├ /team (List of our employees) ││├ /employee_1 │││└ index.md ││├ /... ││└ _index.md │├ /teams (Articles about Microsoft Teams) ││├ /article_1 │││└ index.md ││├ /... ││└ _index.md │├ /... ...
Code
/content/de/team/_index.md:
Tests
Conclusion
Cascade should only affect children of an page. → /page/... But cascade affect every page where the name starts with the name of the page with the cascade properties. → /page...