ref: d3d3863c05c4cd3c3f22eb9e977bcf407a903c45
parent: 7cc637e97a596336d1c64c203cb089e9de84ec45
author: Bjørn Erik Pedersen <[email protected]>
date: Wed Nov 9 14:59:28 EST 2016
node to page: Add all nodes to sitemap Updates #2297 Fixes #1303
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -569,6 +569,7 @@
p := s.newNodePage(NodeTaxonomyTerms)
p.sections = []string{plural}
p.Title = strings.Title(plural)
+ s.setPageURLs(p, plural)
return p
}
--- a/hugolib/page_collections.go
+++ b/hugolib/page_collections.go
@@ -123,7 +123,7 @@
}
func (c *PageCollections) findAllPagesByNodeType(n NodeType) Pages {
- return c.findPagesByNodeTypeIn(n, c.rawAllPages)
+ return c.findPagesByNodeTypeIn(n, c.Nodes)
}
func (c *PageCollections) findRawAllPagesByNodeType(n NodeType) Pages {
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -182,19 +182,18 @@
n := s.newNodePage(NodeSitemap)
- // Prepend homepage to the list of pages
- pages := make(Pages, 0)
+ // Include all pages (regular, home page, taxonomies etc.)
+ pages := s.Nodes
page := s.newNodePage(NodeSitemap)
page.URLPath.URL = ""
page.Sitemap.ChangeFreq = sitemapDefault.ChangeFreq
page.Sitemap.Priority = sitemapDefault.Priority
+ page.Sitemap.Filename = sitemapDefault.Filename
- pages = append(pages, page)
- pages = append(pages, s.Pages...)
-
n.Data["Pages"] = pages
+ // TODO(bep) this should be done somewhere else
for _, page := range pages {
if page.Sitemap.ChangeFreq == "" {
page.Sitemap.ChangeFreq = sitemapDefault.ChangeFreq
--- a/hugolib/sitemap_test.go
+++ b/hugolib/sitemap_test.go
@@ -17,7 +17,6 @@
"testing"
"reflect"
- "strings"
"github.com/spf13/hugo/helpers"
"github.com/spf13/hugo/source"
@@ -36,6 +35,12 @@
</urlset>`
func TestSitemapOutput(t *testing.T) {
+ for _, internal := range []bool{false, true} {
+ doTestSitemapOutput(t, internal)
+ }
+}
+
+func doTestSitemapOutput(t *testing.T, internal bool) {
testCommonResetState()
viper.Set("baseURL", "http://auth/bub/")
@@ -45,15 +50,30 @@
Language: helpers.NewDefaultLanguage(),
}
- if err := buildAndRenderSite(s, "sitemap.xml", SITEMAP_TEMPLATE); err != nil {
- t.Fatalf("Failed to build site: %s", err)
+ if internal {
+ if err := buildAndRenderSite(s); err != nil {
+ t.Fatalf("Failed to build site: %s", err)
+ }
+
+ } else {
+ if err := buildAndRenderSite(s, "sitemap.xml", SITEMAP_TEMPLATE); err != nil {
+ t.Fatalf("Failed to build site: %s", err)
+ }
}
- sitemapContent := readDestination(t, "public/sitemap.xml")
+ assertFileContent(t, "public/sitemap.xml", true,
+ // Regular page
+ " <loc>http://auth/bub/sect/doc1/</loc>",
+ // Home page
+ "<loc>http://auth/bub/</loc>",
+ // Section
+ "<loc>http://auth/bub/sect/</loc>",
+ // Tax terms
+ "<loc>http://auth/bub/categories/</loc>",
+ // Tax list
+ "<loc>http://auth/bub/categories/hugo/</loc>",
+ )
- if !strings.HasPrefix(sitemapContent, "<?xml") {
- t.Errorf("Sitemap file should start with <?xml. %s", sitemapContent)
- }
}
func TestParseSitemap(t *testing.T) {