ref: 7cb0e34dce7cd51b43506f0e285d8d78a9c662c3
parent: ecedc85cb726f8ab971842e1d59079e1049540be
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Nov 10 05:53:12 EST 2016
node to page: Handle menus on home page etc. Updates #2297
--- a/hugolib/node_as_page_test.go
+++ b/hugolib/node_as_page_test.go
@@ -296,8 +296,6 @@
}
func TestNodesWithTaxonomies(t *testing.T) {
- //jww.SetStdoutThreshold(jww.LevelDebug)
- //defer jww.SetStdoutThreshold(jww.LevelFatal)
testCommonResetState()
writeLayoutsForNodeAsPageTests(t)
@@ -314,7 +312,6 @@
viper.Set("paginate", 1)
viper.Set("title", "Hugo Rocks!")
- viper.Set("rssURI", "customrss.xml")
s := newSiteDefaultLang()
@@ -327,6 +324,35 @@
}
+func TestNodesWithMenu(t *testing.T) {
+ //jww.SetStdoutThreshold(jww.LevelDebug)
+ //defer jww.SetStdoutThreshold(jww.LevelFatal)
+ testCommonResetState()
+
+ writeLayoutsForNodeAsPageTests(t)
+ writeRegularPagesForNodeAsPageTests(t)
+
+ writeSource(t, filepath.Join("content", "_index.md"), `---
+title: Home With Menu
+menu:
+ mymenu:
+ name: "Go Home!"
+---
+`)
+
+ viper.Set("paginate", 1)
+ viper.Set("title", "Hugo Rocks!")
+
+ s := newSiteDefaultLang()
+
+ if err := buildAndRenderSite(s); err != nil {
+ t.Fatalf("Failed to build site: %s", err)
+ }
+
+ assertFileContent(t, filepath.Join("public", "index.html"), true, "Home With Menu", "Menu Item: Go Home!")
+
+}
+
func writeRegularPagesForNodeAsPageTests(t *testing.T) {
writeRegularPagesForNodeAsPageTestsWithLang(t, "")
}
@@ -407,6 +433,11 @@
# Pages: {{ len .Data.Pages }}
{{ range .Paginator.Pages }}
Pag: {{ .Title }}
+{{ end }}
+{{ with .Site.Menus.mymenu }}
+{{ range . }}
+Menu Item: {{ .Name }}
+{{ end }}
{{ end }}
`)
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1427,8 +1427,7 @@
sectionPagesMenu := s.Language.GetString("SectionPagesMenu")
sectionPagesMenus := make(map[string]interface{})
//creating flat hash
- // TODO(bep) np menu
- pages := s.findPagesByNodeType(NodePage)
+ pages := s.Nodes
for _, p := range pages {
if sectionPagesMenu != "" {