ref: c0a046cbfb24d64847e6b8a5cd8be8a7e8a0fc80
parent: bb9bcdcf305dd4c1ffcb8efb7cca544300099189
author: spf13 <steve.francia@gmail.com>
date: Wed Apr 9 13:45:34 EDT 2014
Added internal rss.xml template and config option to turn off rss creation
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -48,7 +48,7 @@
}
var hugoCmdV *cobra.Command
-var BuildWatch, Draft, UglyUrls, Verbose, Logging, VerboseLog bool
+var BuildWatch, Draft, UglyUrls, Verbose, Logging, VerboseLog, DisableRSS bool
var Source, Destination, BaseUrl, CfgFile, LogFile string
func Execute() {@@ -65,6 +65,7 @@
func init() {HugoCmd.PersistentFlags().BoolVarP(&Draft, "build-drafts", "D", false, "include content marked as draft")
+ HugoCmd.PersistentFlags().BoolVar(&DisableRSS, "disableRSS", false, "Do not build RSS files")
HugoCmd.PersistentFlags().StringVarP(&Source, "source", "s", "", "filesystem path to read files relative from")
HugoCmd.PersistentFlags().StringVarP(&Destination, "destination", "d", "", "filesystem path to write files to")
HugoCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output")
@@ -86,6 +87,7 @@
viper.RegisterAlias("taxonomies", "indexes")+ viper.SetDefault("DisableRSS", false) viper.SetDefault("ContentDir", "content") viper.SetDefault("LayoutDir", "layouts") viper.SetDefault("StaticDir", "static")@@ -104,6 +106,10 @@
if hugoCmdV.PersistentFlags().Lookup("uglyurls").Changed { viper.Set("UglyUrls", UglyUrls)+ }
+
+ if hugoCmdV.PersistentFlags().Lookup("disableRSS").Changed {+ viper.Set("DisableRSS", DisableRSS)}
if hugoCmdV.PersistentFlags().Lookup("verbose").Changed {--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -457,11 +457,10 @@
return err
}
- if a := s.Tmpl.Lookup("rss.xml"); a != nil {+ if !viper.GetBool("DisableRSS") {// XML Feed
s.setUrls(n, base+".xml")
- err := s.render(n, base+".xml", "rss.xml")
- // TODO add "taxonomy.xml", "_internal/rss.xml"
+ err := s.render(n, base+".xml", "rss.xml", "_internal/_default/rss.xml")
if err != nil {return err
}
@@ -515,12 +514,11 @@
return err
}
- if a := s.Tmpl.Lookup("rss.xml"); a != nil {+ if !viper.GetBool("DisableRSS") {// XML Feed
s.setUrls(n, section+".xml")
- err = s.render(n, section+".xml", "rss.xml")
+ err = s.render(n, section+".xml", "rss.xml", "_internal/_default/rss.xml")
//TODO add section specific rss
- // TODO add internal rss
if err != nil {return err
}
@@ -539,7 +537,7 @@
return err
}
- if a := s.Tmpl.Lookup("rss.xml"); a != nil {+ if !viper.GetBool("DisableRSS") {// XML Feed
n.Url = helpers.Urlize("index.xml")n.Title = "Recent Content"
@@ -552,8 +550,7 @@
if len(s.Pages) > 0 {n.Date = s.Pages[0].Date
}
- err := s.render(n, ".xml", "rss.xml")
- // TODO add internal RSS
+ err := s.render(n, ".xml", "rss.xml", "_internal/_default/rss.xml")
if err != nil {return err
}
--- a/template/bundle/embedded.go
+++ b/template/bundle/embedded.go
@@ -40,3 +40,29 @@
</figure>
<!-- image -->`)
}
+
+func (t *GoHtmlTemplate) EmbedTemplates() {+
+ t.AddInternalTemplate("_default", "rss.xml", `<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">+ <channel>
+ <title>{{ .Title }} on {{ .Site.Title }} </title>+ <generator uri="https://hugo.spf13.com">Hugo</generator>
+ <link>{{ .Permalink }}</link>+ {{ with .Site.LanguageCode }}<language>{{.}}</language>{{end}}+ {{ with .Site.Author }}<author>{{.}}</author>{{end}}+ {{ with .Site.Copyright }}<copyright>{{.}}</copyright>{{end}}+ <updated>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</updated>+ {{ range first 15 .Data.Pages }}+ <item>
+ <title>{{ .Title }}</title>+ <link>{{ .Permalink }}</link>+ <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>+ {{with .Site.Author}}<author>{{.}}</author>{{end}}+ <guid>{{ .Permalink }}</guid>+ <description>{{ .Content | html }}</description>+ </item>
+ {{ end }}+ </channel>
+</rss>`)
+
+}
--- a/template/bundle/template.go
+++ b/template/bundle/template.go
@@ -187,6 +187,7 @@
func (t *GoHtmlTemplate) LoadEmbedded() {t.EmbedShortcodes()
+ t.EmbedTemplates()
}
func (t *GoHtmlTemplate) AddInternalTemplate(prefix, name, tpl string) error {--
⑨