node to page: Make Nodes into Pages
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 11 Nov 2016 08:01:47 +0000 (09:01 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 22 Nov 2016 08:57:03 +0000 (09:57 +0100)
* `.Site.Pages` now contains all page types, including sections etc.
* `.Data.Pages` will also contain "node type" pages where relevant.

Updates #2297

15 files changed:
hugolib/embedded_shortcodes_test.go
hugolib/hugo_sites.go
hugolib/hugo_sites_build.go
hugolib/hugo_sites_test.go
hugolib/menu_test.go
hugolib/node.go
hugolib/node_as_page_test.go
hugolib/page.go
hugolib/page_collections.go
hugolib/page_test.go
hugolib/shortcode_test.go
hugolib/site.go
hugolib/siteJSONEncode_test.go
hugolib/site_render.go
hugolib/site_test.go

index f5f4d1eebbd05ddaf8c6ccec50dc005f7ea02958..160e36fd5757b7f4c258f416d838b5375a9bfe1b 100644 (file)
@@ -66,9 +66,9 @@ func doTestShortcodeCrossrefs(t *testing.T, relative bool) {
        require.NoError(t, err)
 
        require.NoError(t, sites.Build(BuildCfg{}))
-       require.Len(t, sites.Sites[0].Pages, 1)
+       require.Len(t, sites.Sites[0].regularPages, 1)
 
-       output := string(sites.Sites[0].Pages[0].Content)
+       output := string(sites.Sites[0].regularPages[0].Content)
 
        if !strings.Contains(output, expected) {
                t.Errorf("Got\n%q\nExpected\n%q", output, expected)
index 105435fb89d7ab10ff7680e4ca501be4437e8772..72b91a123f3493ea9874ccffb8e2d9cf20c98d7d 100644 (file)
@@ -196,9 +196,9 @@ func (h *HugoSites) renderCrossSitesArtifacts() error {
 
 func (h *HugoSites) assignMissingTranslations() error {
        // This looks heavy, but it should be a small number of nodes by now.
-       allNodes := h.findAllPagesByNodeTypeNotIn(NodePage)
+       allPages := h.findAllPagesByNodeTypeNotIn(NodePage)
        for _, nodeType := range []NodeType{NodeHome, NodeSection, NodeTaxonomy, NodeTaxonomyTerms} {
-               nodes := h.findPagesByNodeTypeIn(nodeType, allNodes)
+               nodes := h.findPagesByNodeTypeIn(nodeType, allPages)
 
                // Assign translations
                for _, t1 := range nodes {
@@ -213,14 +213,12 @@ func (h *HugoSites) assignMissingTranslations() error {
 
 }
 
-// createMissingNodes creates home page, taxonomies etc. that isnt't created as an
+// createMissingPages creates home page, taxonomies etc. that isnt't created as an
 // effect of having a content file.
-func (h *HugoSites) createMissingNodes() error {
-       // TODO(bep) np revisit this on languages -- as this is currently run after the page language distribution (due to taxonomies)
-       // TODO(bep) np re above, Pages vs.
+func (h *HugoSites) createMissingPages() error {
        // TODO(bep) np check node title etc.
 
-       var newNodes Pages
+       var newPages Pages
 
        for _, s := range h.Sites {
 
@@ -231,8 +229,8 @@ func (h *HugoSites) createMissingNodes() error {
                }
                if len(home) == 0 {
                        n := s.newHomePage()
-                       s.Nodes = append(s.Nodes, n)
-                       newNodes = append(newNodes, n)
+                       s.Pages = append(s.Pages, n)
+                       newPages = append(newPages, n)
                }
 
                // taxonomy list and terms pages
@@ -259,15 +257,15 @@ func (h *HugoSites) createMissingNodes() error {
                                        }
                                        if !foundTaxonomyPage {
                                                n := s.newTaxonomyPage(plural, key)
-                                               s.Nodes = append(s.Nodes, n)
-                                               newNodes = append(newNodes, n)
+                                               s.Pages = append(s.Pages, n)
+                                               newPages = append(newPages, n)
                                        }
 
                                        if !foundTaxonomyTermsPage {
                                                foundTaxonomyTermsPage = true
                                                n := s.newTaxonomyTermsPage(plural)
-                                               s.Nodes = append(s.Nodes, n)
-                                               newNodes = append(newNodes, n)
+                                               s.Pages = append(s.Pages, n)
+                                               newPages = append(newPages, n)
                                        }
                                }
                        }
@@ -292,18 +290,18 @@ func (h *HugoSites) createMissingNodes() error {
                                }
                                if !foundSection {
                                        n := s.newSectionPage(name, section)
-                                       s.Nodes = append(s.Nodes, n)
-                                       newNodes = append(newNodes, n)
+                                       s.Pages = append(s.Pages, n)
+                                       newPages = append(newPages, n)
                                }
                        }
                }
        }
 
-       if len(newNodes) > 0 {
+       if len(newPages) > 0 {
                first := h.Sites[0]
-               first.AllNodes = append(first.AllNodes, newNodes...)
+               first.AllPages = append(first.AllPages, newPages...)
                for i := 1; i < len(h.Sites); i++ {
-                       h.Sites[i].AllNodes = first.AllNodes
+                       h.Sites[i].AllPages = first.AllPages
                }
        }
        return nil
@@ -404,7 +402,7 @@ func (h *HugoSites) setupTranslations() {
                        if strings.HasPrefix(site.Language.Lang, p.Lang()) {
                                site.updateBuildStats(p)
                                if shouldBuild {
-                                       site.Nodes = append(site.Nodes, p)
+                                       site.Pages = append(site.Pages, p)
                                        p.Site = &site.Info
                                }
                        }
@@ -414,7 +412,7 @@ func (h *HugoSites) setupTranslations() {
                        }
 
                        if i == 0 {
-                               site.AllNodes = append(site.AllNodes, p)
+                               site.AllPages = append(site.AllPages, p)
                        }
                }
 
@@ -422,12 +420,12 @@ func (h *HugoSites) setupTranslations() {
 
        // Pull over the collections from the master site
        for i := 1; i < len(h.Sites); i++ {
-               h.Sites[i].AllNodes = h.Sites[0].AllNodes
+               h.Sites[i].AllPages = h.Sites[0].AllPages
                h.Sites[i].Data = h.Sites[0].Data
        }
 
        if len(h.Sites) > 1 {
-               pages := h.Sites[0].AllNodes
+               pages := h.Sites[0].AllPages
                allTranslations := pagesToTranslationsMap(h.multilingual, pages)
                assignTranslationsToPages(allTranslations, pages)
        }
@@ -524,7 +522,7 @@ func (s *Site) preparePagesForRender(cfg BuildCfg, changed whatChanged) {
                }(pageChan, wg)
        }
 
-       for _, p := range s.Nodes {
+       for _, p := range s.Pages {
                pageChan <- p
        }
 
@@ -586,7 +584,7 @@ func (h *HugoSites) findPagesByNodeTypeIn(n NodeType, inPages Pages) Pages {
 }
 
 func (h *HugoSites) findAllPagesByNodeTypeNotIn(n NodeType) Pages {
-       return h.findPagesByNodeTypeNotIn(n, h.Sites[0].AllNodes)
+       return h.findPagesByNodeTypeNotIn(n, h.Sites[0].AllPages)
 }
 
 // Convenience func used in tests to build a single site/language excluding render phase.
index f5b6e6809efd9311667726167b24aa259762e9f2..32185dd4f2022f9e9adbf1d5bd6d59c6e5f9d412 100644 (file)
@@ -156,7 +156,7 @@ func (h *HugoSites) assemble(config *BuildCfg) error {
                }
        }
 
-       if err := h.createMissingNodes(); err != nil {
+       if err := h.createMissingPages(); err != nil {
                return err
        }
 
index 2a1e32576703a6e98e26b3dc21a55af3870e33cc..1ed4744cafe8f7c0d3926a93f9e8807a21e8c6f4 100644 (file)
@@ -84,8 +84,8 @@ func doTestMultiSitesMainLangInRoot(t *testing.T, defaultInSubDir bool) {
 
        require.Equal(t, "/blog/en/foo", enSite.Info.pathSpec.RelURL("foo", true))
 
-       doc1en := enSite.Pages[0]
-       doc1fr := frSite.Pages[0]
+       doc1en := enSite.regularPages[0]
+       doc1fr := frSite.regularPages[0]
 
        enPerm, _ := doc1en.Permalink()
        enRelPerm, _ := doc1en.RelPermalink()
@@ -217,24 +217,24 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) {
 
        assert.Equal(t, "en", enSite.Language.Lang)
 
-       if len(enSite.Pages) != 4 {
+       if len(enSite.regularPages) != 4 {
                t.Fatal("Expected 4 english pages")
        }
        assert.Len(t, enSite.Source.Files(), 14, "should have 13 source files")
-       assert.Len(t, enSite.AllPages, 9, "should have 8 total pages (including translations)")
+       assert.Len(t, enSite.AllPages, 28, "should have 28 total pages (including translations and index types)")
 
-       doc1en := enSite.Pages[0]
+       doc1en := enSite.regularPages[0]
        permalink, err := doc1en.Permalink()
        assert.NoError(t, err, "permalink call failed")
        assert.Equal(t, "http://example.com/blog/en/sect/doc1-slug/", permalink, "invalid doc1.en permalink")
        assert.Len(t, doc1en.Translations(), 1, "doc1-en should have one translation, excluding itself")
 
-       doc2 := enSite.Pages[1]
+       doc2 := enSite.regularPages[1]
        permalink, err = doc2.Permalink()
        assert.NoError(t, err, "permalink call failed")
        assert.Equal(t, "http://example.com/blog/en/sect/doc2/", permalink, "invalid doc2 permalink")
 
-       doc3 := enSite.Pages[2]
+       doc3 := enSite.regularPages[2]
        permalink, err = doc3.Permalink()
        assert.NoError(t, err, "permalink call failed")
        // Note that /superbob is a custom URL set in frontmatter.
@@ -277,10 +277,10 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) {
        frSite := sites.Sites[1]
 
        assert.Equal(t, "fr", frSite.Language.Lang)
-       assert.Len(t, frSite.Pages, 3, "should have 3 pages")
-       assert.Len(t, frSite.AllPages, 9, "should have 8 total pages (including translations)")
+       assert.Len(t, frSite.regularPages, 3, "should have 3 pages")
+       assert.Len(t, frSite.AllPages, 28, "should have 28 total pages (including translations and nodes)")
 
-       for _, frenchPage := range frSite.Pages {
+       for _, frenchPage := range frSite.regularPages {
                assert.Equal(t, "fr", frenchPage.Lang())
        }
 
@@ -387,8 +387,8 @@ func TestMultiSitesRebuild(t *testing.T) {
        enSite := sites.Sites[0]
        frSite := sites.Sites[1]
 
-       require.Len(t, enSite.Pages, 4)
-       require.Len(t, frSite.Pages, 3)
+       require.Len(t, enSite.regularPages, 4)
+       require.Len(t, frSite.regularPages, 3)
 
        // Verify translations
        assertFileContent(t, "public/en/sect/doc1-slug/index.html", true, "Hello")
@@ -414,7 +414,7 @@ func TestMultiSitesRebuild(t *testing.T) {
                        nil,
                        []fsnotify.Event{{Name: "content/sect/doc2.en.md", Op: fsnotify.Remove}},
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 3, "1 en removed")
+                               require.Len(t, enSite.regularPages, 3, "1 en removed")
 
                                // Check build stats
                                require.Equal(t, 1, enSite.draftCount, "Draft")
@@ -437,12 +437,12 @@ func TestMultiSitesRebuild(t *testing.T) {
                                {Name: "content/new1.fr.md", Op: fsnotify.Create},
                        },
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5)
-                               require.Len(t, enSite.AllPages, 11)
-                               require.Len(t, frSite.Pages, 4)
-                               require.Equal(t, "new_fr_1", frSite.Pages[3].Title)
-                               require.Equal(t, "new_en_2", enSite.Pages[0].Title)
-                               require.Equal(t, "new_en_1", enSite.Pages[1].Title)
+                               require.Len(t, enSite.regularPages, 5)
+                               require.Len(t, enSite.AllPages, 30)
+                               require.Len(t, frSite.regularPages, 4)
+                               require.Equal(t, "new_fr_1", frSite.regularPages[3].Title)
+                               require.Equal(t, "new_en_2", enSite.regularPages[0].Title)
+                               require.Equal(t, "new_en_1", enSite.regularPages[1].Title)
 
                                rendered := readDestination(t, "public/en/new1/index.html")
                                require.True(t, strings.Contains(rendered, "new_en_1"), rendered)
@@ -457,7 +457,7 @@ func TestMultiSitesRebuild(t *testing.T) {
                        },
                        []fsnotify.Event{{Name: "content/sect/doc1.en.md", Op: fsnotify.Write}},
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5)
+                               require.Len(t, enSite.regularPages, 5)
                                doc1 := readDestination(t, "public/en/sect/doc1-slug/index.html")
                                require.True(t, strings.Contains(doc1, "CHANGED"), doc1)
 
@@ -475,8 +475,8 @@ func TestMultiSitesRebuild(t *testing.T) {
                                {Name: "content/new1.en.md", Op: fsnotify.Rename},
                        },
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5, "Rename")
-                               require.Equal(t, "new_en_1", enSite.Pages[1].Title)
+                               require.Len(t, enSite.regularPages, 5, "Rename")
+                               require.Equal(t, "new_en_1", enSite.regularPages[1].Title)
                                rendered := readDestination(t, "public/en/new1renamed/index.html")
                                require.True(t, strings.Contains(rendered, "new_en_1"), rendered)
                        }},
@@ -490,9 +490,9 @@ func TestMultiSitesRebuild(t *testing.T) {
                        },
                        []fsnotify.Event{{Name: "layouts/_default/single.html", Op: fsnotify.Write}},
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5)
-                               require.Len(t, enSite.AllPages, 11)
-                               require.Len(t, frSite.Pages, 4)
+                               require.Len(t, enSite.regularPages, 5)
+                               require.Len(t, enSite.AllPages, 30)
+                               require.Len(t, frSite.regularPages, 4)
                                doc1 := readDestination(t, "public/en/sect/doc1-slug/index.html")
                                require.True(t, strings.Contains(doc1, "Template Changed"), doc1)
                        },
@@ -507,9 +507,9 @@ func TestMultiSitesRebuild(t *testing.T) {
                        },
                        []fsnotify.Event{{Name: "i18n/fr.yaml", Op: fsnotify.Write}},
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5)
-                               require.Len(t, enSite.AllPages, 11)
-                               require.Len(t, frSite.Pages, 4)
+                               require.Len(t, enSite.regularPages, 5)
+                               require.Len(t, enSite.AllPages, 30)
+                               require.Len(t, frSite.regularPages, 4)
                                docEn := readDestination(t, "public/en/sect/doc1-slug/index.html")
                                require.True(t, strings.Contains(docEn, "Hello"), "No Hello")
                                docFr := readDestination(t, "public/fr/sect/doc1/index.html")
@@ -531,9 +531,9 @@ func TestMultiSitesRebuild(t *testing.T) {
                                {Name: "layouts/shortcodes/shortcode.html", Op: fsnotify.Write},
                        },
                        func(t *testing.T) {
-                               require.Len(t, enSite.Pages, 5)
-                               require.Len(t, enSite.AllPages, 11)
-                               require.Len(t, frSite.Pages, 4)
+                               require.Len(t, enSite.regularPages, 5)
+                               require.Len(t, enSite.AllPages, 30)
+                               require.Len(t, frSite.regularPages, 4)
                                assertFileContent(t, "public/fr/sect/doc1/index.html", true, "Single", "Modified Shortcode: Salut")
                                assertFileContent(t, "public/en/sect/doc1-slug/index.html", true, "Single", "Modified Shortcode: Hello")
                        },
@@ -627,12 +627,12 @@ title = "Svenska"
        require.Len(t, homeEn.Translations(), 4)
        require.Equal(t, "sv", homeEn.Translations()[0].Lang())
 
-       require.Len(t, enSite.Pages, 4)
-       require.Len(t, frSite.Pages, 3)
+       require.Len(t, enSite.regularPages, 4)
+       require.Len(t, frSite.regularPages, 3)
 
        // Veriy Swedish site
-       require.Len(t, svSite.Pages, 1)
-       svPage := svSite.Pages[0]
+       require.Len(t, svSite.regularPages, 1)
+       svPage := svSite.regularPages[0]
        require.Equal(t, "Swedish Contentfile", svPage.Title)
        require.Equal(t, "sv", svPage.Lang())
        require.Len(t, svPage.Translations(), 2)
index b5d01aa49d359389ce246a1fb676f8dafd1d72e7..bd186bd9f695bb2620a8c3a52c1647383b3eb9d3 100644 (file)
@@ -208,7 +208,7 @@ func doTestPageMenuWithIdentifier(t *testing.T, menuPageSources []source.ByteSou
 
        s := setupMenuTests(t, menuPageSources)
 
-       assert.Equal(t, 3, len(s.Pages), "Not enough pages")
+       assert.Equal(t, 3, len(s.regularPages), "Not enough pages")
 
        me1 := findTestMenuEntryByID(s, "m1", "i1")
        me2 := findTestMenuEntryByID(s, "m1", "i2")
@@ -246,7 +246,7 @@ func doTestPageMenuWithDuplicateName(t *testing.T, menuPageSources []source.Byte
 
        s := setupMenuTests(t, menuPageSources)
 
-       assert.Equal(t, 3, len(s.Pages), "Not enough pages")
+       assert.Equal(t, 3, len(s.regularPages), "Not enough pages")
 
        me1 := findTestMenuEntryByName(s, "m1", "n1")
        me2 := findTestMenuEntryByName(s, "m1", "n2")
@@ -264,13 +264,13 @@ func TestPageMenu(t *testing.T) {
 
        s := setupMenuTests(t, menuPageSources)
 
-       if len(s.Pages) != 3 {
-               t.Fatalf("Posts not created, expected 3 got %d", len(s.Pages))
+       if len(s.regularPages) != 3 {
+               t.Fatalf("Posts not created, expected 3 got %d", len(s.regularPages))
        }
 
-       first := s.Pages[0]
-       second := s.Pages[1]
-       third := s.Pages[2]
+       first := s.regularPages[0]
+       second := s.regularPages[1]
+       third := s.regularPages[2]
 
        pOne := findTestMenuEntryByName(s, "p_one", "One")
        pTwo := findTestMenuEntryByID(s, "p_two", "Two")
@@ -358,9 +358,9 @@ Yaml Front Matter with Menu Pages`)
                {Name: filepath.FromSlash("sect/yaml1.md"), Content: ps1},
                {Name: filepath.FromSlash("sect/yaml2.md"), Content: ps2}})
 
-       p1 := s.Pages[0]
+       p1 := s.regularPages[0]
        assert.Len(t, p1.Menus(), 2, "List YAML")
-       p2 := s.Pages[1]
+       p2 := s.regularPages[1]
        assert.Len(t, p2.Menus(), 2, "Map YAML")
 
 }
index 8c9c8f98a2e85b5aa925107f2e0e46fbe109c604..d77408545075cf24f1911ac8177af1571d91b5c6 100644 (file)
@@ -103,21 +103,6 @@ type Node struct {
        lang         string
 }
 
-// The Nodes type is temporary until we get https://github.com/spf13/hugo/issues/2297 fixed.
-type Nodes []*Node
-
-func (n Nodes) Len() int {
-       return len(n)
-}
-
-func (n Nodes) Less(i, j int) bool {
-       return n[i].language.Weight < n[j].language.Weight
-}
-
-func (n Nodes) Swap(i, j int) {
-       n[i], n[j] = n[j], n[i]
-}
-
 func (n *Node) Now() time.Time {
        return time.Now()
 }
index d6645bc54ce4c9120771becdf5c8777e3d8a032f..04a3c30cf0492ff9f04d2102eceaa67ffa7507fb 100644 (file)
@@ -79,7 +79,7 @@ Content Page %02d
        assertFileContent(t, filepath.Join("public", "index.html"), false,
                "Index Title: Home Sweet Home!",
                "Home <strong>Content!</strong>",
-               "# Pages: 4")
+               "# Pages: 9")
 
        assertFileContent(t, filepath.Join("public", "sect1", "regular1", "index.html"), false, "Single Title: Page 01", "Content Page 01")
 
@@ -170,7 +170,7 @@ func TestNodesWithNoContentFile(t *testing.T) {
        require.Len(t, homePages, 1)
 
        homePage := homePages[0]
-       require.Len(t, homePage.Data["Pages"], 4)
+       require.Len(t, homePage.Data["Pages"], 9)
 
        assertFileContent(t, filepath.Join("public", "index.html"), false,
                "Index Title: Hugo Rocks!")
index fb2944bffc7d9a714f61d6cfb684fe495375763a..6184aa0bca259bfc06fa3246c005582adf3201e9 100644 (file)
@@ -1277,7 +1277,7 @@ func (p *Page) prepareData(s *Site) error {
        switch p.NodeType {
        case NodePage:
        case NodeHome:
-               p.Data["Pages"] = s.Pages
+               p.Data["Pages"] = s.findPagesByNodeTypeNotIn(NodeHome, s.Pages)
        case NodeSection:
                sectionData, ok := s.Sections[p.sections[0]]
                if !ok {
index cb83c77a809a20c4d0419e1f3603b569325f7648..71e40d9649b59c119b892fc04a4e576756bb65de 100644 (file)
@@ -17,38 +17,34 @@ import (
        "fmt"
 )
 
-// TODO(bep) np pages names
-// TODO(bep) np this is a somewhat breaking change and should be doc. + release notes: See AllPages vs. "this language only". Looks like it is like this alread, check.
+// PageCollections contains the page collections for a site.
 type PageCollections struct {
-       // Includes only pages of NodePage type, and only pages in the current language.
+       // Includes only pages of all types, and only pages in the current language.
        Pages Pages
 
        // Includes all pages in all languages, including the current one.
-       // Only pages of NodePage type.
+       // Inlcudes pages of all types.
        AllPages Pages
 
-       // Includes pages of all types, but only pages in the current language.
-       Nodes Pages
-
-       // Includes all pages in all languages, including the current one.
-       // Includes pages of all types.
-       AllNodes Pages
+       // A convenience cache for the traditional index types, taxonomies, home page etc.
+       // This is for the current language only.
+       indexPages Pages
 
-       // A convenience cache for the traditional node types, taxonomies, home page etc.
+       // A convenience cache for the regular pages.
        // This is for the current language only.
-       indexNodes Pages
+       // TODO(bep) np consider exporting this
+       regularPages Pages
 
        // Includes absolute all pages (of all types), including drafts etc.
        rawAllPages Pages
 }
 
 func (c *PageCollections) refreshPageCaches() {
-       // All pages are stored in AllNodes and Nodes. Filter from those.
-       c.Pages = c.findPagesByNodeTypeIn(NodePage, c.Nodes)
-       c.indexNodes = c.findPagesByNodeTypeNotIn(NodePage, c.Nodes)
-       c.AllPages = c.findPagesByNodeTypeIn(NodePage, c.AllNodes)
+       c.indexPages = c.findPagesByNodeTypeNotIn(NodePage, c.Pages)
+       c.regularPages = c.findPagesByNodeTypeIn(NodePage, c.Pages)
 
-       for _, n := range c.Nodes {
+       // TODO(bep) np remove eventually
+       for _, n := range c.Pages {
                if n.NodeType == NodeUnknown {
                        panic(fmt.Sprintf("Got unknown type %s", n.Title))
                }
@@ -66,11 +62,11 @@ func newPageCollectionsFromPages(pages Pages) *PageCollections {
 // TODO(bep) np clean and remove finders
 
 func (c *PageCollections) findPagesByNodeType(n NodeType) Pages {
-       return c.findPagesByNodeTypeIn(n, c.Nodes)
+       return c.findPagesByNodeTypeIn(n, c.Pages)
 }
 
 func (c *PageCollections) getPage(n NodeType, path ...string) *Page {
-       pages := c.findPagesByNodeTypeIn(n, c.Nodes)
+       pages := c.findPagesByNodeTypeIn(n, c.Pages)
 
        if len(pages) == 0 {
                return nil
@@ -99,7 +95,7 @@ func (c *PageCollections) getPage(n NodeType, path ...string) *Page {
 }
 
 func (c *PageCollections) findIndexNodesByNodeType(n NodeType) Pages {
-       return c.findPagesByNodeTypeIn(n, c.indexNodes)
+       return c.findPagesByNodeTypeIn(n, c.indexPages)
 }
 
 func (*PageCollections) findPagesByNodeTypeIn(n NodeType, inPages Pages) Pages {
@@ -123,7 +119,7 @@ func (*PageCollections) findPagesByNodeTypeNotIn(n NodeType, inPages Pages) Page
 }
 
 func (c *PageCollections) findAllPagesByNodeType(n NodeType) Pages {
-       return c.findPagesByNodeTypeIn(n, c.Nodes)
+       return c.findPagesByNodeTypeIn(n, c.Pages)
 }
 
 func (c *PageCollections) findRawAllPagesByNodeType(n NodeType) Pages {
index 86baf44f2cd9ead9a7a6a8ec73e924a255626661..a63ca1c9fd3d6162d3f081bc719cc5a9c73ec2e4 100644 (file)
@@ -630,9 +630,9 @@ func testAllMarkdownEnginesForPages(t *testing.T,
                        t.Fatalf("Failed to build site: %s", err)
                }
 
-               require.Len(t, s.Pages, len(pageSources))
+               require.Len(t, s.regularPages, len(pageSources))
 
-               assertFunc(t, e.ext, s.Pages)
+               assertFunc(t, e.ext, s.regularPages)
 
        }
 
@@ -740,9 +740,9 @@ func TestPageWithDelimiterForMarkdownThatCrossesBorder(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
 
        if p.Summary != template.HTML("<p>The <a href=\"http://gohugo.io/\">best static site generator</a>.<sup class=\"footnote-ref\" id=\"fnref:1\"><a rel=\"footnote\" href=\"#fn:1\">1</a></sup>\n</p>") {
                t.Fatalf("Got summary:\n%q", p.Summary)
@@ -788,9 +788,9 @@ func TestPageWithAdditionalExtension(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
 
        checkPageContent(t, p, "<p>first line.<br />\nsecond line.</p>\n\n<p>fourth line.</p>\n")
 }
@@ -802,9 +802,9 @@ func TestTableOfContents(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
 
        checkPageContent(t, p, "\n\n<p>For some moments the old man did not reply. He stood with bowed head, buried in deep thought. But at last he spoke.</p>\n\n<h2 id=\"aa\">AA</h2>\n\n<p>I have no idea, of course, how long it took me to reach the limit of the plain,\nbut at last I entered the foothills, following a pretty little canyon upward\ntoward the mountains. Beside me frolicked a laughing brooklet, hurrying upon\nits noisy way down to the silent sea. In its quieter pools I discovered many\nsmall fish, of four-or five-pound weight I should imagine. In appearance,\nexcept as to size and color, they were not unlike the whale of our own seas. As\nI watched them playing about I discovered, not only that they suckled their\nyoung, but that at intervals they rose to the surface to breathe as well as to\nfeed upon certain grasses and a strange, scarlet lichen which grew upon the\nrocks just above the water line.</p>\n\n<h3 id=\"aaa\">AAA</h3>\n\n<p>I remember I felt an extraordinary persuasion that I was being played with,\nthat presently, when I was upon the very verge of safety, this mysterious\ndeath&ndash;as swift as the passage of light&ndash;would leap after me from the pit about\nthe cylinder and strike me down. ## BB</p>\n\n<h3 id=\"bbb\">BBB</h3>\n\n<p>&ldquo;You&rsquo;re a great Granser,&rdquo; he cried delightedly, &ldquo;always making believe them little marks mean something.&rdquo;</p>\n")
        checkPageTOC(t, p, "<nav id=\"TableOfContents\">\n<ul>\n<li>\n<ul>\n<li><a href=\"#aa\">AA</a>\n<ul>\n<li><a href=\"#aaa\">AAA</a></li>\n<li><a href=\"#bbb\">BBB</a></li>\n</ul></li>\n</ul></li>\n</ul>\n</nav>")
@@ -832,9 +832,9 @@ func TestPageWithDate(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
        d, _ := time.Parse(time.RFC3339, "2013-05-17T16:59:30Z")
 
        checkPageDate(t, p, d)
@@ -1266,9 +1266,9 @@ func TestChompBOM(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
 
        checkPageTitle(t, p, "Simple")
 }
index b2685e2ecb163cac27230359c670e7ac37a66cf7..d8b8b411a2475b33f80c85626e932842c13cb7b3 100644 (file)
@@ -69,9 +69,9 @@ title: "Title"
                t.Fatalf("No error from shortcode")
        }
 
-       require.Len(t, h.Sites[0].Pages, 1)
+       require.Len(t, h.Sites[0].regularPages, 1)
 
-       output := strings.TrimSpace(string(h.Sites[0].Pages[0].Content))
+       output := strings.TrimSpace(string(h.Sites[0].regularPages[0].Content))
        if strings.HasPrefix(output, "<p>") {
                output = output[3:]
        }
index 6f8955a2fea1643352862d01cb3c3fe21e7582c2..d93fbf6506c92c2b4c0837a1488e7a47101bebe4 100644 (file)
@@ -1327,14 +1327,14 @@ func (s *Site) buildSiteMeta() (err error) {
 
        s.assembleMenus()
 
-       if len(s.Nodes) == 0 {
+       if len(s.Pages) == 0 {
                return
        }
 
        s.assembleTaxonomies()
 
        // TODO(bep) np
-       for _, p := range s.AllNodes {
+       for _, p := range s.AllPages {
                // setNodeTypeVars needs taxonomies
                p.setNodeTypeVars(s)
        }
@@ -1343,7 +1343,7 @@ func (s *Site) buildSiteMeta() (err error) {
        s.assembleSections()
 
        // TODO(bep) np Site.LastMod
-       pages := s.Nodes
+       pages := s.Pages
        s.Info.LastChange = pages[0].Lastmod
 
        return
@@ -1418,7 +1418,7 @@ func (s *Site) assembleMenus() {
        sectionPagesMenu := s.Language.GetString("SectionPagesMenu")
        sectionPagesMenus := make(map[string]interface{})
        //creating flat hash
-       pages := s.Nodes
+       pages := s.Pages
        for _, p := range pages {
 
                if sectionPagesMenu != "" {
@@ -1486,7 +1486,7 @@ func (s *Site) assembleTaxonomies() {
                s.Taxonomies[plural] = make(Taxonomy)
                s.taxonomiesPluralSingular[plural] = singular
 
-               for _, p := range s.Nodes {
+               for _, p := range s.Pages {
                        vals := p.getParam(plural, !s.Info.preserveTaxonomyNames)
                        weight := p.GetParam(plural + "_weight")
                        if weight == nil {
@@ -1574,7 +1574,7 @@ func (s *Site) nodeTypeFromSections(sections []string) NodeType {
 func (s *Site) preparePages() error {
        var errors []error
 
-       for _, p := range s.Nodes {
+       for _, p := range s.Pages {
                if err := p.prepareLayouts(); err != nil {
                        errors = append(errors, err)
                }
index cf34fe728c9fc61f9f8a110b83680af51531dd54..9e2f6ecc215b0dce4351e375a41f392068ebab1c 100644 (file)
@@ -30,7 +30,7 @@ func TestEncodePage(t *testing.T) {
        _, err := json.Marshal(s)
        check(t, err)
 
-       _, err = json.Marshal(s.Pages[0])
+       _, err = json.Marshal(s.regularPages[0])
        check(t, err)
 }
 
index 9a65987caf8ae92ba7fbb3582301370596b35308..fe7db05f33b0dc39bcc01a1ed20a4f681300b985 100644 (file)
@@ -45,7 +45,7 @@ func (s *Site) renderPages() error {
                go pageRenderer(s, pages, results, wg)
        }
 
-       for _, page := range s.Nodes {
+       for _, page := range s.Pages {
                pages <- page
        }
 
@@ -183,7 +183,7 @@ func (s *Site) renderSitemap() error {
        n := s.newNodePage(NodeSitemap)
 
        // Include all pages (regular, home page, taxonomies etc.)
-       pages := s.Nodes
+       pages := s.Pages
 
        page := s.newNodePage(NodeSitemap)
        page.URLPath.URL = ""
@@ -239,7 +239,7 @@ func (s *Site) renderRobotsTXT() error {
 
 // renderAliases renders shell pages that simply have a redirect in the header.
 func (s *Site) renderAliases() error {
-       for _, p := range s.Nodes {
+       for _, p := range s.Pages {
                if len(p.Aliases) == 0 {
                        continue
                }
index 500e1b65c2007e59350fcc825c415f5e22a364f2..0302f3503171104e9f384c4796e196fcd0294d9c 100644 (file)
@@ -91,9 +91,9 @@ func TestDegenerateRenderThingMissingTemplate(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       require.Len(t, s.Pages, 1)
+       require.Len(t, s.regularPages, 1)
 
-       p := s.Pages[0]
+       p := s.regularPages[0]
 
        err := s.renderThing(p, "foobar", nil)
        if err == nil {
@@ -142,14 +142,14 @@ func TestDraftAndFutureRender(t *testing.T) {
 
        // Testing Defaults.. Only draft:true and publishDate in the past should be rendered
        s := siteSetup(t)
-       if len(s.AllPages) != 1 {
+       if len(s.regularPages) != 1 {
                t.Fatal("Draft or Future dated content published unexpectedly")
        }
 
        // only publishDate in the past should be rendered
        viper.Set("buildDrafts", true)
        s = siteSetup(t)
-       if len(s.AllPages) != 2 {
+       if len(s.regularPages) != 2 {
                t.Fatal("Future Dated Posts published unexpectedly")
        }
 
@@ -157,7 +157,7 @@ func TestDraftAndFutureRender(t *testing.T) {
        viper.Set("buildDrafts", false)
        viper.Set("buildFuture", true)
        s = siteSetup(t)
-       if len(s.AllPages) != 2 {
+       if len(s.regularPages) != 2 {
                t.Fatal("Draft posts published unexpectedly")
        }
 
@@ -165,7 +165,7 @@ func TestDraftAndFutureRender(t *testing.T) {
        viper.Set("buildDrafts", true)
        viper.Set("buildFuture", true)
        s = siteSetup(t)
-       if len(s.AllPages) != 4 {
+       if len(s.regularPages) != 4 {
                t.Fatal("Drafts or Future posts not included as expected")
        }
 
@@ -201,11 +201,11 @@ func TestFutureExpirationRender(t *testing.T) {
        s := siteSetup(t)
 
        if len(s.AllPages) != 1 {
-               if len(s.AllPages) > 1 {
+               if len(s.regularPages) > 1 {
                        t.Fatal("Expired content published unexpectedly")
                }
 
-               if len(s.AllPages) < 1 {
+               if len(s.regularPages) < 1 {
                        t.Fatal("Valid content expired unexpectedly")
                }
        }
@@ -285,7 +285,7 @@ THE END.`, refShortcode)),
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       if len(s.AllPages) != 3 {
+       if len(s.regularPages) != 3 {
                t.Fatalf("Expected 3 got %d pages", len(s.AllPages))
        }
 
@@ -377,7 +377,7 @@ func doTestShouldAlwaysHaveUglyURLs(t *testing.T, uglyURLs bool) {
                {filepath.FromSlash("public/ugly.html"), "\n\n<h1 id=\"title\">title</h1>\n\n<p>doc2 <em>content</em></p>\n"},
        }
 
-       for _, p := range s.Pages {
+       for _, p := range s.regularPages {
                assert.False(t, p.IsHome())
        }
 
@@ -649,7 +649,7 @@ func TestOrderedPages(t *testing.T) {
                t.Errorf("Pages in unexpected order. Second should be '%s', got '%s'", "Three", s.Sections["sect"][1].Page.Title)
        }
 
-       bydate := s.Pages.ByDate()
+       bydate := s.regularPages.ByDate()
 
        if bydate[0].Title != "One" {
                t.Errorf("Pages in unexpected order. First should be '%s', got '%s'", "One", bydate[0].Title)
@@ -660,7 +660,7 @@ func TestOrderedPages(t *testing.T) {
                t.Errorf("Pages in unexpected order. First should be '%s', got '%s'", "Three", rev[0].Title)
        }
 
-       bypubdate := s.Pages.ByPublishDate()
+       bypubdate := s.regularPages.ByPublishDate()
 
        if bypubdate[0].Title != "One" {
                t.Errorf("Pages in unexpected order. First should be '%s', got '%s'", "One", bypubdate[0].Title)
@@ -671,7 +671,7 @@ func TestOrderedPages(t *testing.T) {
                t.Errorf("Pages in unexpected order. First should be '%s', got '%s'", "Three", rbypubdate[0].Title)
        }
 
-       bylength := s.Pages.ByLength()
+       bylength := s.regularPages.ByLength()
        if bylength[0].Title != "One" {
                t.Errorf("Pages in unexpected order. First should be '%s', got '%s'", "One", bylength[0].Title)
        }
@@ -710,7 +710,7 @@ func TestGroupedPages(t *testing.T) {
                t.Fatalf("Failed to build site: %s", err)
        }
 
-       rbysection, err := s.Pages.GroupBy("Section", "desc")
+       rbysection, err := s.regularPages.GroupBy("Section", "desc")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -730,7 +730,7 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup has unexpected number of pages. Third group should have '%d' pages, got '%d' pages", 2, len(rbysection[2].Pages))
        }
 
-       bytype, err := s.Pages.GroupBy("Type", "asc")
+       bytype, err := s.regularPages.GroupBy("Type", "asc")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -750,7 +750,7 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup has unexpected number of pages. First group should have '%d' pages, got '%d' pages", 2, len(bytype[2].Pages))
        }
 
-       bydate, err := s.Pages.GroupByDate("2006-01", "asc")
+       bydate, err := s.regularPages.GroupByDate("2006-01", "asc")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -770,7 +770,7 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup has unexpected number of pages. First group should have '%d' pages, got '%d' pages", 2, len(bydate[2].Pages))
        }
 
-       bypubdate, err := s.Pages.GroupByPublishDate("2006")
+       bypubdate, err := s.regularPages.GroupByPublishDate("2006")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -787,7 +787,7 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup has unexpected number of pages. First group should have '%d' pages, got '%d' pages", 3, len(bypubdate[0].Pages))
        }
 
-       byparam, err := s.Pages.GroupByParam("my_param", "desc")
+       byparam, err := s.regularPages.GroupByParam("my_param", "desc")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -807,12 +807,12 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup has unexpected number of pages. First group should have '%d' pages, got '%d' pages", 2, len(byparam[0].Pages))
        }
 
-       _, err = s.Pages.GroupByParam("not_exist")
+       _, err = s.regularPages.GroupByParam("not_exist")
        if err == nil {
                t.Errorf("GroupByParam didn't return an expected error")
        }
 
-       byOnlyOneParam, err := s.Pages.GroupByParam("only_one")
+       byOnlyOneParam, err := s.regularPages.GroupByParam("only_one")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }
@@ -823,7 +823,7 @@ func TestGroupedPages(t *testing.T) {
                t.Errorf("PageGroup array in unexpected order. First group key should be '%s', got '%s'", "yes", byOnlyOneParam[0].Key)
        }
 
-       byParamDate, err := s.Pages.GroupByParamDate("my_date", "2006-01")
+       byParamDate, err := s.regularPages.GroupByParamDate("my_date", "2006-01")
        if err != nil {
                t.Fatalf("Unable to make PageGroup array: %s", err)
        }