summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/allconfig/allconfig.go4
-rw-r--r--hugolib/config_test.go23
2 files changed, 25 insertions, 2 deletions
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: |")
+
+}