mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
7cc637e97a
commit
d3d3863c05
4 changed files with 33 additions and 13 deletions
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -17,7 +17,6 @@ import (
|
|||
"testing"
|
||||
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/hugo/helpers"
|
||||
"github.com/spf13/hugo/source"
|
||||
|
@ -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/")
|
||||
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue