diff --git a/config/allconfig/allconfig.go b/config/allconfig/allconfig.go index ade7ea1be..abb955546 100644 --- a/config/allconfig/allconfig.go +++ b/config/allconfig/allconfig.go @@ -729,8 +729,8 @@ func fromLoadConfigResult(fs afero.Fs, logger loggers.Logger, res config.LoadCon isMultiHost = true } mergedConfig.Set(kk, vv) - if cfg.IsSet(kk) { - rootv := cfg.Get(kk) + rootv := cfg.Get(kk) + if rootv != nil && cfg.IsSet(kk) { // This overrides a root key and potentially needs a merge. if !reflect.DeepEqual(rootv, vv) { switch vvv := vv.(type) { diff --git a/hugolib/config_test.go b/hugolib/config_test.go index a8e3b8f2c..edb6b793e 100644 --- a/hugolib/config_test.go +++ b/hugolib/config_test.go @@ -1066,3 +1066,26 @@ LanguageCode: {{ .Site.LanguageCode }}|{{ site.Language.LanguageCode }}| b.AssertFileContent("public/index.html", "LanguageCode: en-US|en-US|") } + +// Issue 11047 +func TestConfigYamlNil(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.yaml -- +params: +-- layouts/index.html -- +Foo: {{ site.Params.foo }}| + + +` + b := NewIntegrationTestBuilder( + IntegrationTestConfig{ + T: t, + TxtarString: files, + }, + ).Build() + + b.AssertFileContent("public/index.html", "Foo: |") + +}