Skip to content

Commit

Permalink
node to page: Add all nodes to sitemap
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Nov 22, 2016
1 parent c21b7fd commit 3f8df41
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 13 deletions.
1 change: 1 addition & 0 deletions hugolib/hugo_sites.go
Expand Up @@ -569,6 +569,7 @@ func (s *Site) newTaxonomyTermsPage(plural string) *Page {
p := s.newNodePage(NodeTaxonomyTerms)
p.sections = []string{plural}
p.Title = strings.Title(plural)
s.setPageURLs(p, plural)
return p
}

Expand Down
2 changes: 1 addition & 1 deletion hugolib/page_collections.go
Expand Up @@ -123,7 +123,7 @@ func (*PageCollections) findPagesByNodeTypeNotIn(n NodeType, inPages Pages) Page
}

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 {
Expand Down
9 changes: 4 additions & 5 deletions hugolib/site_render.go
Expand Up @@ -182,19 +182,18 @@ func (s *Site) renderSitemap() error {

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

pages = append(pages, page)
pages = append(pages, s.Pages...)
page.Sitemap.Filename = sitemapDefault.Filename

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
Expand Down
34 changes: 27 additions & 7 deletions hugolib/sitemap_test.go
Expand Up @@ -17,7 +17,6 @@ import (
"testing"

"reflect"
"strings"

"github.com/spf13/hugo/helpers"
"github.com/spf13/hugo/source"
Expand All @@ -36,6 +35,12 @@ const SITEMAP_TEMPLATE = `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap
</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/")
Expand All @@ -45,15 +50,30 @@ func TestSitemapOutput(t *testing.T) {
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) {
Expand Down

0 comments on commit 3f8df41

Please sign in to comment.