summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-30 10:56:45 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-30 21:07:52 +0200
commite3dc5240f01fd5ec67643e40f27c026d707da110 (patch)
treeb7558806edbdcfa86d2d73dea83c3455e11c7678 /hugolib
parent268065cb2d8339392766a23703beaf7cc49d6b5c (diff)
Improve handling of <nil> Params
Fixes #8825
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/menu_test.go19
-rw-r--r--hugolib/site.go18
2 files changed, 32 insertions, 5 deletions
diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go
index a647c5bfa..796ac3beb 100644
--- a/hugolib/menu_test.go
+++ b/hugolib/menu_test.go
@@ -350,6 +350,25 @@ menu:
b.AssertFileContent("public/index.html", "A|Children:C|B|")
}
+// Issue #8825
+func TestMenuParamsEmptyYaml(t *testing.T) {
+ b := newTestSitesBuilder(t).WithConfigFile("yaml", `
+
+`)
+
+ b.WithTemplates("index.html", `{{ site.Menus }}`)
+
+ b.WithContent("p1.md", `---
+menus:
+ main:
+ identity: journal
+ weight: 2
+ params:
+---
+`)
+ b.Build(BuildCfg{})
+}
+
func TestMenuParams(t *testing.T) {
b := newTestSitesBuilder(t).WithConfigFile("toml", `
[[menus.main]]
diff --git a/hugolib/site.go b/hugolib/site.go
index e687710bf..18c9bfc80 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1400,17 +1400,25 @@ func (s *Site) getMenusFromConfig() navigation.Menus {
s.Log.Errorf("unable to process menus in site config\n")
s.Log.Errorln(err)
} else {
+ handleErr := func(err error) {
+ if err == nil {
+ return
+ }
+ s.Log.Errorf("unable to process menus in site config\n")
+ s.Log.Errorln(err)
+
+ }
+
for _, entry := range m {
s.Log.Debugf("found menu: %q, in site config\n", name)
menuEntry := navigation.MenuEntry{Menu: name}
ime, err := maps.ToStringMapE(entry)
- if err != nil {
- s.Log.Errorf("unable to process menus in site config\n")
- s.Log.Errorln(err)
- }
+ handleErr(err)
+
+ err = menuEntry.MarshallMap(ime)
+ handleErr(err)
- menuEntry.MarshallMap(ime)
// TODO(bep) clean up all of this
menuEntry.ConfiguredURL = s.Info.createNodeMenuEntryURL(menuEntry.ConfiguredURL)