From 6cdb8109cfd1253ebb5b3f36e6a0e5ee95f11e71 Mon Sep 17 00:00:00 2001 From: Gerben Castel Date: Thu, 10 Dec 2015 19:39:06 +0000 Subject: [PATCH] Allow renaming of sitemap.xml --- commands/hugo.go | 2 +- docs/content/templates/sitemap.md | 6 ++++-- hugolib/site.go | 6 +++++- hugolib/sitemap.go | 5 ++++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/commands/hugo.go b/commands/hugo.go index 66edcfce1..4d3f9bab6 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -222,7 +222,7 @@ func LoadDefaultSettings() { viper.SetDefault("RemovePathAccents", false) viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"}) viper.SetDefault("Permalinks", make(hugolib.PermalinkOverrides, 0)) - viper.SetDefault("Sitemap", hugolib.Sitemap{Priority: -1}) + viper.SetDefault("Sitemap", hugolib.Sitemap{Priority: -1, Filename: "sitemap.xml"}) viper.SetDefault("DefaultExtension", "html") viper.SetDefault("PygmentsStyle", "monokai") viper.SetDefault("PygmentsUseClasses", false) diff --git a/docs/content/templates/sitemap.md b/docs/content/templates/sitemap.md index 39d9b803e..701f06363 100644 --- a/docs/content/templates/sitemap.md +++ b/docs/content/templates/sitemap.md @@ -23,6 +23,7 @@ along with Sitemap-specific ones: **.Sitemap.ChangeFreq** The page change frequency
**.Sitemap.Priority** The priority of the page
+**.Sitemap.Filename** The sitemap filename
In addition to the standard node variables, the homepage has access to all site pages through `.Data.Pages`. @@ -53,10 +54,11 @@ on render. Please don't include this in the template as it's not valid HTML.* ## Configuring sitemap.xml -Defaults for `` and `` values can be set in the site's config file, e.g.: +Defaults for ``, `` and `filename` values can be set in the site's config file, e.g.: [sitemap] changefreq = "monthly" priority = 0.5 + filename = "sitemap.xml" -The same fields can be specified in an individual page's front matter in order to override the value for that page. \ No newline at end of file +The same fields can be specified in an individual page's front matter in order to override the value for that page. diff --git a/hugolib/site.go b/hugolib/site.go index ec0eb886f..f93d6ff6b 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -1541,11 +1541,15 @@ func (s *Site) RenderSitemap() error { if page.Sitemap.Priority == -1 { page.Sitemap.Priority = sitemapDefault.Priority } + + if page.Sitemap.Filename == "" { + page.Sitemap.Filename = sitemapDefault.Filename + } } smLayouts := []string{"sitemap.xml", "_default/sitemap.xml", "_internal/_default/sitemap.xml"} - if err := s.renderAndWriteXML("sitemap", "sitemap.xml", n, s.appendThemeTemplates(smLayouts)...); err != nil { + if err := s.renderAndWriteXML("sitemap", page.Sitemap.Filename, n, s.appendThemeTemplates(smLayouts)...); err != nil { return err } diff --git a/hugolib/sitemap.go b/hugolib/sitemap.go index 3f3a28cd2..54e1d076e 100644 --- a/hugolib/sitemap.go +++ b/hugolib/sitemap.go @@ -21,10 +21,11 @@ import ( type Sitemap struct { ChangeFreq string Priority float64 + Filename string } func parseSitemap(input map[string]interface{}) Sitemap { - sitemap := Sitemap{Priority: -1} + sitemap := Sitemap{Priority: -1, Filename: "sitemap.xml"} for key, value := range input { switch key { @@ -32,6 +33,8 @@ func parseSitemap(input map[string]interface{}) Sitemap { sitemap.ChangeFreq = cast.ToString(value) case "priority": sitemap.Priority = cast.ToFloat64(value) + case "filename": + sitemap.Filename = cast.ToString(value) default: jww.WARN.Printf("Unknown Sitemap field: %s\n", key) }