diff --git a/pelican/generators.py b/pelican/generators.py index ff9a9d7c..d9923e35 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -309,24 +309,26 @@ class ArticlesGenerator(CachingGenerator): if self.settings.get('CATEGORY_FEED_ATOM'): writer.write_feed(arts, self.context, self.settings['CATEGORY_FEED_ATOM'] - % cat.slug) + % cat.slug, feed_title=cat.name) if self.settings.get('CATEGORY_FEED_RSS'): writer.write_feed(arts, self.context, self.settings['CATEGORY_FEED_RSS'] - % cat.slug, feed_type='rss') + % cat.slug, feed_title=cat.name, + feed_type='rss') for auth, arts in self.authors: arts.sort(key=attrgetter('date'), reverse=True) if self.settings.get('AUTHOR_FEED_ATOM'): writer.write_feed(arts, self.context, self.settings['AUTHOR_FEED_ATOM'] - % auth.slug) + % auth.slug, feed_title=auth.name) if self.settings.get('AUTHOR_FEED_RSS'): writer.write_feed(arts, self.context, self.settings['AUTHOR_FEED_RSS'] - % auth.slug, feed_type='rss') + % auth.slug, feed_title=auth.name, + feed_type='rss') if (self.settings.get('TAG_FEED_ATOM') or self.settings.get('TAG_FEED_RSS')): @@ -335,12 +337,12 @@ class ArticlesGenerator(CachingGenerator): if self.settings.get('TAG_FEED_ATOM'): writer.write_feed(arts, self.context, self.settings['TAG_FEED_ATOM'] - % tag.slug) + % tag.slug, feed_title=tag.name) if self.settings.get('TAG_FEED_RSS'): writer.write_feed(arts, self.context, self.settings['TAG_FEED_RSS'] % tag.slug, - feed_type='rss') + feed_title=tag.name, feed_type='rss') if (self.settings.get('TRANSLATION_FEED_ATOM') or self.settings.get('TRANSLATION_FEED_RSS')): diff --git a/pelican/writers.py b/pelican/writers.py index 423fc9f3..1f9262b1 100644 --- a/pelican/writers.py +++ b/pelican/writers.py @@ -31,11 +31,14 @@ class Writer(object): self._written_files = set() self._overridden_files = set() - def _create_new_feed(self, feed_type, context): + def _create_new_feed(self, feed_type, feed_title, context): feed_class = Rss201rev2Feed if feed_type == 'rss' else Atom1Feed - sitename = Markup(context['SITENAME']).striptags() + if feed_title: + feed_title = context['SITENAME'] + ' - ' + feed_title + else: + feed_title = context['SITENAME'] feed = feed_class( - title=sitename, + title=Markup(feed_title).striptags(), link=(self.site_url + '/'), feed_url=self.feed_url, description=context.get('SITESUBTITLE', '')) @@ -84,7 +87,7 @@ class Writer(object): return open(filename, 'w', encoding=encoding) def write_feed(self, elements, context, path=None, feed_type='atom', - override_output=False): + override_output=False, feed_title=None): """Generate a feed with the list of articles provided Return the feed. If no path or output_path is specified, just @@ -97,6 +100,7 @@ class Writer(object): :param override_output: boolean telling if we can override previous output with the same name (and if next files written with the same name should be skipped to keep that one) + :param feed_title: the title of the feed.o """ if not is_selected_for_writing(self.settings, path): return @@ -107,7 +111,7 @@ class Writer(object): self.feed_domain = context.get('FEED_DOMAIN') self.feed_url = '{}/{}'.format(self.feed_domain, path) - feed = self._create_new_feed(feed_type, context) + feed = self._create_new_feed(feed_type, feed_title, context) max_items = len(elements) if self.settings['FEED_MAX_ITEMS']: