shithub: hugo

Download patch

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 != "" {