node to page: Handle menus on home page etc.
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 10 Nov 2016 09:53:12 +0000 (10:53 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 22 Nov 2016 08:57:03 +0000 (09:57 +0100)
Updates #2297

hugolib/node_as_page_test.go
hugolib/site.go

index b5c4944004886ba7421e7e6d4b844b7c44e614d7..083bdc30eef2864d826bce05f2da815376c9e929 100644 (file)
@@ -296,8 +296,6 @@ title = "Hugo in English"
 }
 
 func TestNodesWithTaxonomies(t *testing.T) {
-       //jww.SetStdoutThreshold(jww.LevelDebug)
-       //defer jww.SetStdoutThreshold(jww.LevelFatal)
        testCommonResetState()
 
        writeLayoutsForNodeAsPageTests(t)
@@ -314,7 +312,6 @@ categories:  [
 
        viper.Set("paginate", 1)
        viper.Set("title", "Hugo Rocks!")
-       viper.Set("rssURI", "customrss.xml")
 
        s := newSiteDefaultLang()
 
@@ -327,6 +324,35 @@ categories:  [
 
 }
 
+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, "")
 }
@@ -408,6 +434,11 @@ Index Content: {{ .Content }}
 {{ range .Paginator.Pages }}
        Pag: {{ .Title }}
 {{ end }}
+{{ with .Site.Menus.mymenu }}
+{{ range . }}
+Menu Item: {{ .Name }}
+{{ end }}
+{{ end }}
 `)
 
        writeSource(t, filepath.Join("layouts", "_default", "single.html"), `
index 375ffaac100bb1f93670623d9cf077a3f99da282..30674ad8e0829c181cb4e067645787348df81d75 100644 (file)
@@ -1427,8 +1427,7 @@ func (s *Site) assembleMenus() {
        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 != "" {