ref: 6a3d1037b31706f69d23b46d4c80bafc33f9759d
parent: 342b6fe8a584a84b83159da430773fcdb7b174e4
author: Bjørn Erik Pedersen <[email protected]>
date: Fri Oct 28 10:46:33 EDT 2016
Fix RSS Title regression And add tests to make sure it doesn't happen again. Fixes #2645
--- a/hugolib/rss_test.go
+++ b/hugolib/rss_test.go
@@ -20,44 +20,27 @@
"github.com/spf13/viper"
)
-const rssTemplate = `<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
- <channel>
- <title>{{ .Title }} on {{ .Site.Title }} </title>
- <link>{{ .Permalink }}</link>
- <language>en-us</language>
- <author>Steve Francia</author>
- <rights>Francia; all rights reserved.</rights>
- <updated>{{ .Date }}</updated>
- {{ range .Data.Pages }}
- <item>
- <title>{{ .Title }}</title>
- <link>{{ .Permalink }}</link>
- <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>
- <author>Steve Francia</author>
- <guid>{{ .Permalink }}</guid>
- <description>{{ .Content | html }}</description>
- </item>
- {{ end }}
- </channel>
-</rss>`
-
func TestRSSOutput(t *testing.T) {
testCommonResetState()
- rssURI := "public/customrss.xml"
+ rssURI := "customrss.xml"
viper.Set("baseURL", "http://auth/bub/")
viper.Set("rssURI", rssURI)
+ viper.Set("title", "RSSTest")
for _, s := range weightedSources {
- writeSource(t, filepath.Join("content", s.Name), string(s.Content))
+ writeSource(t, filepath.Join("content", "sect", s.Name), string(s.Content))
}
- writeSource(t, filepath.Join("layouts", "rss.xml"), rssTemplate)
-
if err := buildAndRenderSite(newSiteDefaultLang()); err != nil {
t.Fatalf("Failed to build site: %s", err)
}
- assertFileContent(t, filepath.Join("public", rssURI), true, "<?xml", "rss version")
+ // Home RSS
+ assertFileContent(t, filepath.Join("public", rssURI), true, "<?xml", "rss version", "RSSTest")
+ // Section RSS
+ assertFileContent(t, filepath.Join("public", "sect", rssURI), true, "<?xml", "rss version", "Sects on RSSTest")
+ // Taxonomy RSS
+ assertFileContent(t, filepath.Join("public", "categories", "hugo", rssURI), true, "<?xml", "rss version", "Hugo on RSSTest")
}
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1883,6 +1883,7 @@
if !viper.GetBool("disableRSS") {
// XML Feed
rssNode := s.newNode(fmt.Sprintf("%s-%s-rss", t.plural, t.key))
+ rssNode.Title = n.Title
rssURI := viper.GetString("rssURI")
s.setURLs(rssNode, base+"/"+rssURI)
rssNode.Data = n.Data
@@ -2016,6 +2017,7 @@
// XML Feed
rssURI := viper.GetString("rssURI")
rssNode := s.newSectionListNode(true, sectionName+"-rss", section, data, 0)
+ rssNode.Title = n.Title
s.setURLs(rssNode, section+"/"+rssURI)
rssLayouts := []string{"section/" + section + ".rss.xml", "_default/rss.xml", "rss.xml", "_internal/_default/rss.xml"}
if err := s.renderAndWriteXML("section "+section+" rss", rssNode.addLangPathPrefix(section+"/"+rssURI), rssNode, s.appendThemeTemplates(rssLayouts)...); err != nil {
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -623,6 +623,7 @@
publishdate = "2012-01-01"
my_param = "baz"
my_date = 2010-05-27T07:32:00Z
+categories = [ "hugo" ]
+++
Front Matter with Ordered Pages 4. This is longer content`)