From e3dc5240f01fd5ec67643e40f27c026d707da110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 30 Jul 2021 10:56:45 +0200 Subject: Improve handling of Params Fixes #8825 --- hugolib/menu_test.go | 19 +++++++++++++++++++ hugolib/site.go | 18 +++++++++++++----- 2 files changed, 32 insertions(+), 5 deletions(-) (limited to 'hugolib') 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) -- cgit v1.2.3