From cc15864744210497325b69d8c3b4130c9c5156ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 1 Mar 2017 12:30:41 +0100 Subject: [PATCH] hugolib: Only return RSSLink when RSS is available Fixes #1302 --- hugolib/hugo_sites_build_test.go | 5 ++++- hugolib/page.go | 4 ++-- hugolib/site.go | 4 +++- hugolib/taxonomy_test.go | 5 +++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/hugolib/hugo_sites_build_test.go b/hugolib/hugo_sites_build_test.go index e917d9f51d5..5772c7478df 100644 --- a/hugolib/hugo_sites_build_test.go +++ b/hugolib/hugo_sites_build_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" + "html/template" "os" "path/filepath" - "text/template" //"github.com/fortytw2/leaktest" "github.com/fsnotify/fsnotify" @@ -370,6 +370,9 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) { require.Equal(t, "Home", enSite.Menus["main"].ByName()[0].Name) require.Equal(t, "Heim", nnSite.Menus["main"].ByName()[0].Name) + // Issue #1302 + require.Equal(t, template.URL(""), enSite.RegularPages[0].RSSLink) + // Issue #3108 next := enSite.RegularPages[0].Next require.NotNil(t, next) diff --git a/hugolib/page.go b/hugolib/page.go index 455efd7828b..68e839f9a36 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -186,7 +186,7 @@ type Page struct { Sitemap Sitemap - RSSLink template.HTML + RSSLink template.URL URLPath permalink *url.URL @@ -1670,7 +1670,7 @@ func (p *Page) Hugo() *HugoInfo { return hugoInfo } -func (p *Page) RSSlink() template.HTML { +func (p *Page) RSSlink() template.URL { // TODO(bep) we cannot have two of these // Remove in Hugo 0.20 helpers.Deprecated(".Page", "Use RSSlink", "RSSLink", true) diff --git a/hugolib/site.go b/hugolib/site.go index 917080c1029..e5b30a38d01 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -2087,7 +2087,9 @@ func (s *Site) newHomePage() *Page { func (s *Site) setPageURLs(p *Page, in string) { p.URLPath.URL = s.PathSpec.URLizeAndPrep(in) p.URLPath.Permalink = s.Info.permalink(p.URLPath.URL) - p.RSSLink = template.HTML(s.Info.permalink(in + ".xml")) + if p.Kind != KindPage && p.Kind != KindTaxonomyTerm { + p.RSSLink = template.URL(s.Info.permalink(in + ".xml")) + } } func (s *Site) newTaxonomyPage(plural, key string) *Page { diff --git a/hugolib/taxonomy_test.go b/hugolib/taxonomy_test.go index f2369340331..3c6dc2707b0 100644 --- a/hugolib/taxonomy_test.go +++ b/hugolib/taxonomy_test.go @@ -15,6 +15,7 @@ package hugolib import ( "fmt" + "html/template" "path/filepath" "reflect" "testing" @@ -125,6 +126,10 @@ others: s := h.Sites[0] + // Issue #1302 + term := s.getPage(KindTaxonomyTerm, "others") + require.Equal(t, template.URL(""), term.RSSLink) + // Issue #3070 preserveTaxonomyNames if preserveTaxonomyNames { helloWorld := s.getPage(KindTaxonomy, "others", "Hello Hugo world")