From afee781f03df4305698bf4b6991cd10e996515c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 30 Jan 2024 10:07:28 +0100 Subject: [PATCH] Emit a warning that can be turned off when overwriting built-in .Params values Fixes #11941 --- common/constants/constants.go | 4 +++- hugolib/page__meta.go | 4 ++++ hugolib/params_test.go | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/common/constants/constants.go b/common/constants/constants.go index e4f5a63a2..f8f057e05 100644 --- a/common/constants/constants.go +++ b/common/constants/constants.go @@ -13,12 +13,14 @@ package constants -// Error IDs. +// Error/Warning IDs. // Do not change these values. const ( // IDs for remote errors in tpl/data. ErrRemoteGetJSON = "error-remote-getjson" ErrRemoteGetCSV = "error-remote-getcsv" + + WarnFrontMatterParamsOverrides = "warning-frontmatter-params-overrides" ) // Field/method names with special meaning. diff --git a/hugolib/page__meta.go b/hugolib/page__meta.go index 179622d9b..e4cb2b83b 100644 --- a/hugolib/page__meta.go +++ b/hugolib/page__meta.go @@ -31,6 +31,7 @@ import ( "github.com/gohugoio/hugo/source" + "github.com/gohugoio/hugo/common/constants" "github.com/gohugoio/hugo/common/hugo" "github.com/gohugoio/hugo/common/maps" "github.com/gohugoio/hugo/common/paths" @@ -621,6 +622,9 @@ func (p *pageState) setMetaPostParams() error { } for k, v := range userParams { + if _, found := params[k]; found { + p.s.Log.Warnidf(constants.WarnFrontMatterParamsOverrides, "Hugo front matter key %q is overridden in params section.", k) + } params[strings.ToLower(k)] = v } diff --git a/hugolib/params_test.go b/hugolib/params_test.go index f80f14035..6f890b43b 100644 --- a/hugolib/params_test.go +++ b/hugolib/params_test.go @@ -133,6 +133,28 @@ RegularPages: {{ range site.RegularPages }}{{ .Path }}|{{ .RelPermalink }}|{{ .T ) } +func TestFrontMatterTitleOverrideWarn(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +baseURL = "https://example.org/" +disableKinds = ["taxonomy", "term"] +-- content/p1.md -- +--- +title: "My title" +params: + title: "My title from params" +--- + + +` + + b := Test(t, files, TestOptWarn()) + + b.AssertLogContains("ARN Hugo front matter key \"title\" is overridden in params section", "You can suppress this warning") +} + func TestFrontMatterParamsLangNoCascade(t *testing.T) { t.Parallel()