Allow renaming of sitemap.xml - hugo - [fork] hugo port for 9front
 (HTM) git clone git@git.drkhsh.at/hugo.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6cdb8109cfd1253ebb5b3f36e6a0e5ee95f11e71
 (DIR) parent 26d23f7f4becb2bbfa80d91ae9b27ffc76e13e3a
 (HTM) Author: Gerben Castel <gerben.castel@gmail.com>
       Date:   Thu, 10 Dec 2015 19:39:06 +0000
       
       Allow renaming of sitemap.xml
       
       Diffstat:
         M commands/hugo.go                    |       2 +-
         M docs/content/templates/sitemap.md   |       7 ++++---
         M hugolib/site.go                     |       6 +++++-
         M hugolib/sitemap.go                  |       5 ++++-
       
       4 files changed, 14 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git 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)
 (DIR) diff --git 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<br>
        **.Sitemap.Priority** The priority of the page<br>
       +**.Sitemap.Filename** The sitemap filename<br>
        
        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 `<changefreq>` and `<priority>` values can be set in the site's config file, e.g.:
       +Defaults for `<changefreq>`, `<priority>` 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.
 (DIR) diff --git 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
                }
        
 (DIR) diff --git 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)
                        }