mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
Handle build vs _build in front matter
* Throw a detailed error message in the mentioned case * Also fixed a dropped error Fixes #11970
This commit is contained in:
parent
e33a632551
commit
a66480f70c
3 changed files with 46 additions and 5 deletions
|
@ -1239,7 +1239,9 @@ func (sa *sitePagesAssembler) applyAggregates() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combine the cascade map with front matter.
|
// Combine the cascade map with front matter.
|
||||||
pageBundle.setMetaPost(cascade)
|
if err := pageBundle.setMetaPost(cascade); err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
// We receive cascade values from above. If this leads to a change compared
|
// We receive cascade values from above. If this leads to a change compared
|
||||||
// to the previous value, we need to mark the page and its dependencies as changed.
|
// to the previous value, we need to mark the page and its dependencies as changed.
|
||||||
|
@ -1304,7 +1306,9 @@ func (sa *sitePagesAssembler) applyAggregates() error {
|
||||||
if data != nil {
|
if data != nil {
|
||||||
cascade = data.(map[page.PageMatcher]maps.Params)
|
cascade = data.(map[page.PageMatcher]maps.Params)
|
||||||
}
|
}
|
||||||
pageResource.setMetaPost(cascade)
|
if err := pageResource.setMetaPost(cascade); err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false, nil
|
return false, nil
|
||||||
|
@ -1369,7 +1373,9 @@ func (sa *sitePagesAssembler) applyAggregatesToTaxonomiesAndTerms() error {
|
||||||
if data != nil {
|
if data != nil {
|
||||||
cascade = data.(map[page.PageMatcher]maps.Params)
|
cascade = data.(map[page.PageMatcher]maps.Params)
|
||||||
}
|
}
|
||||||
p.setMetaPost(cascade)
|
if err := p.setMetaPost(cascade); err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
if err := sa.pageMap.treeTaxonomyEntries.WalkPrefix(
|
if err := sa.pageMap.treeTaxonomyEntries.WalkPrefix(
|
||||||
doctree.LockTypeRead,
|
doctree.LockTypeRead,
|
||||||
|
|
|
@ -428,15 +428,29 @@ func (p *pageState) setMetaPostParams() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
var buildConfig any
|
var buildConfig any
|
||||||
|
var isNewBuildKeyword bool
|
||||||
if v, ok := pm.pageConfig.Params["_build"]; ok {
|
if v, ok := pm.pageConfig.Params["_build"]; ok {
|
||||||
buildConfig = v
|
buildConfig = v
|
||||||
} else {
|
} else {
|
||||||
buildConfig = pm.pageConfig.Params["build"]
|
buildConfig = pm.pageConfig.Params["build"]
|
||||||
|
isNewBuildKeyword = true
|
||||||
}
|
}
|
||||||
|
|
||||||
pm.pageConfig.Build, err = pagemeta.DecodeBuildConfig(buildConfig)
|
pm.pageConfig.Build, err = pagemeta.DecodeBuildConfig(buildConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
//lint:ignore ST1005 end user message.
|
||||||
|
var msgDetail string
|
||||||
|
if isNewBuildKeyword {
|
||||||
|
msgDetail = `. We renamed the _build keyword to build in Hugo 0.123.0. We recommend putting user defined params in the params section, e.g.:
|
||||||
|
---
|
||||||
|
title: "My Title"
|
||||||
|
params:
|
||||||
|
build: "My Build"
|
||||||
|
---
|
||||||
|
´
|
||||||
|
|
||||||
|
`
|
||||||
|
}
|
||||||
|
return fmt.Errorf("failed to decode build config in front matter: %s%s", err, msgDetail)
|
||||||
}
|
}
|
||||||
|
|
||||||
var sitemapSet bool
|
var sitemapSet bool
|
||||||
|
|
|
@ -181,3 +181,24 @@ lang = 'nn'
|
||||||
b, err := TestE(t, files)
|
b, err := TestE(t, files)
|
||||||
b.Assert(err, qt.IsNotNil)
|
b.Assert(err, qt.IsNotNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue 11970.
|
||||||
|
func TestFrontMatterBuildIsHugoKeyword(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
files := `
|
||||||
|
-- hugo.toml --
|
||||||
|
baseURL = "https://example.org/"
|
||||||
|
-- content/p1.md --
|
||||||
|
---
|
||||||
|
title: "P1"
|
||||||
|
build: "foo"
|
||||||
|
---
|
||||||
|
-- layouts/_default/single.html --
|
||||||
|
Params: {{ range $k, $v := .Params }}{{ $k }}: {{ $v }}|{{ end }}$
|
||||||
|
`
|
||||||
|
b, err := TestE(t, files)
|
||||||
|
|
||||||
|
b.Assert(err, qt.IsNotNil)
|
||||||
|
b.Assert(err.Error(), qt.Contains, "We renamed the _build keyword")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue