hugolib: Fix simple menu config
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Apr 2019 07:50:36 +0000 (09:50 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Apr 2019 08:04:17 +0000 (10:04 +0200)
This stopped working in Hugo 0.55:

```bash
---
menu: "main"
---
```

This was also the case for using a slice of menu entries.

This still worked:

---
menu:
  main:
    weight: 30
---

hugolib/menu_test.go
navigation/pagemenus.go

index 253259af17561e1fc582572e18edf4e19286cc3a..5c692d2e7e21c663bbb0cbc80089548564e735bb 100644 (file)
@@ -112,3 +112,54 @@ Menu Main:  {{ partial "menu.html" (dict "page" . "menu" "main") }}`,
                        "/sect3/|Sect3s||0|-|-|")
 
 }
+
+func TestMenuFrontMatter(t *testing.T) {
+
+       b := newTestSitesBuilder(t).WithSimpleConfigFile()
+
+       b.WithTemplatesAdded("index.html", `
+Main: {{ len .Site.Menus.main }}
+Other: {{ len .Site.Menus.other }}
+{{ range .Site.Menus.main }}
+* Main|{{ .Name }}: {{ .URL }}
+{{ end }}
+{{ range .Site.Menus.other }}
+* Other|{{ .Name }}: {{ .URL }}
+{{ end }}
+`)
+
+       // Issue #5828
+       b.WithContent("blog/page1.md", `
+---
+title: "P1"
+menu: main
+---
+
+`)
+
+       b.WithContent("blog/page2.md", `
+---
+title: "P2"
+menu: [main,other]
+---
+
+`)
+
+       b.WithContent("blog/page3.md", `
+---
+title: "P3"
+menu:
+  main:
+    weight: 30
+---
+`)
+
+       b.Build(BuildCfg{})
+
+       b.AssertFileContent("public/index.html",
+               "Main: 3", "Other: 1",
+               "Main|P1: /blog/page1/",
+               "Other|P2: /blog/page2/",
+       )
+
+}
index 86a4aeaec1d4629db0457094e268572881fd137f..c0d809ee3d7a9a958d5ad1b89cfb087a12f9d282 100644 (file)
@@ -60,7 +60,7 @@ func PageMenusFromPage(p Page) (PageMenus, error) {
        if err == nil {
                me.Menu = mname
                pm[mname] = &me
-               return nil, nil
+               return pm, nil
        }
 
        // Could be a slice of strings
@@ -71,7 +71,7 @@ func PageMenusFromPage(p Page) (PageMenus, error) {
                        me.Menu = mname
                        pm[mname] = &me
                }
-               return nil, nil
+               return pm, nil
        }
 
        // Could be a structured menu entry