hugolib: Fix simple menu config

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
---
This commit is contained in:
Bjørn Erik Pedersen 2019-04-12 09:50:36 +02:00
parent f7375c4972
commit 9e9a1f92ba
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 53 additions and 2 deletions

View 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/",
)
}

View 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