shithub: hugo

Download patch

ref: 9e9a1f92baf151f8d840d6b5b963945d1410ce25
parent: f7375c497239115cd30ae42af6b4d298e4e7ad7d
author: Bjørn Erik Pedersen <[email protected]>
date: Fri Apr 12 05:50:36 EDT 2019

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
---

--- a/hugolib/menu_test.go
+++ b/hugolib/menu_test.go
@@ -112,3 +112,54 @@
 			"/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/",
+	)
+
+}
--- a/navigation/pagemenus.go
+++ b/navigation/pagemenus.go
@@ -60,7 +60,7 @@
 	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 @@
 			me.Menu = mname
 			pm[mname] = &me
 		}
-		return nil, nil
+		return pm, nil
 	}
 
 	// Could be a structured menu entry