diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-30 10:56:45 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-30 21:07:52 +0200 |
commit | e3dc5240f01fd5ec67643e40f27c026d707da110 (patch) | |
tree | b7558806edbdcfa86d2d73dea83c3455e11c7678 /hugolib | |
parent | 268065cb2d8339392766a23703beaf7cc49d6b5c (diff) |
Improve handling of <nil> Params
Fixes #8825
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/menu_test.go | 19 | ||||
-rw-r--r-- | hugolib/site.go | 18 |
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) |