From a11726783ee2a4b359405b90c86d9af9b8e93a24 Mon Sep 17 00:00:00 2001 From: jawher Date: Mon, 22 Oct 2012 16:34:55 +0200 Subject: [PATCH] TRANSLATION_FEED is now split into TRANSLATION_FEED_ATOM and TRANSLATION_FEED_RSS to match the other feed configuration keys Incidentally, Pelican can now generate RSS translation feeds. --- docs/fr/configuration.rst | 7 +++++-- docs/settings.rst | 13 +++++++------ docs/themes.rst | 3 ++- pelican/__init__.py | 8 ++++++++ pelican/generators.py | 11 ++++++++--- pelican/settings.py | 2 +- 6 files changed, 31 insertions(+), 13 deletions(-) diff --git a/docs/fr/configuration.rst b/docs/fr/configuration.rst index abfc7ef5..76f03a61 100644 --- a/docs/fr/configuration.rst +++ b/docs/fr/configuration.rst @@ -77,8 +77,11 @@ Traductions DEFAULT_LANG : Le langage par défaut à utiliser. «*en*» par défaut ; -TRANSLATION_FEED : - Chemin du flux pour les traductions. +TRANSLATION_FEED_ATOM : + Chemin du flux Atom pour les traductions. + +TRANSLATION_FEED_RSS : + Chemin du flux RSS pour les traductions. Thèmes diff --git a/docs/settings.rst b/docs/settings.rst index ff59e0d3..7e381e78 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -366,12 +366,13 @@ Translations Pelican offers a way to translate articles. See the Getting Started section for more information. -================================================ ===================================================== -Setting name (default value) What does it do? -================================================ ===================================================== -`DEFAULT_LANG` (``'en'``) The default language to use. -`TRANSLATION_FEED` ('feeds/all-%s.atom.xml'[3]_) Where to put the feed for translations. -================================================ ===================================================== +===================================================== ===================================================== +Setting name (default value) What does it do? +===================================================== ===================================================== +`DEFAULT_LANG` (``'en'``) The default language to use. +`TRANSLATION_FEED_ATOM` ('feeds/all-%s.atom.xml'[3]_) Where to put the Atom feed for translations. +`TRANSLATION_FEED_RSS` (``None``, i.e. no RSS) Where to put the RSS feed for translations. +===================================================== ===================================================== .. [3] %s is the language diff --git a/docs/themes.rst b/docs/themes.rst index 7598a28c..091ff5b8 100644 --- a/docs/themes.rst +++ b/docs/themes.rst @@ -202,7 +202,8 @@ Here is a complete list of the feed variables:: CATEGORY_FEED_RSS TAG_FEED_ATOM TAG_FEED_RSS - TRANSLATION_FEED + TRANSLATION_FEED_ATOM + TRANSLATION_FEED_RSS Inheritance diff --git a/pelican/__init__.py b/pelican/__init__.py index b93dee06..2f37b17a 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -122,6 +122,14 @@ class Pelican(object): self.settings['CATEGORY_FEED_ATOM'] =\ self.settings['CATEGORY_FEED'] + if self.settings.get('TRANSLATION_FEED', False): + logger.warning('Found deprecated `TRANSLATION_FEED` in settings. ' + 'Modify TRANSLATION_FEED to TRANSLATION_FEED_ATOM in your settings and ' + 'theme for the same behavior. Temporarily setting ' + 'TRANSLATION_FEED_ATOM for backwards compatibility.') + self.settings['TRANSLATION_FEED_ATOM'] =\ + self.settings['TRANSLATION_FEED'] + def run(self): """Run the generators and return""" diff --git a/pelican/generators.py b/pelican/generators.py index ff5ebdba..3d298630 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -166,15 +166,20 @@ class ArticlesGenerator(Generator): self.settings['TAG_FEED_RSS'] % tag, feed_type='rss') - if self.settings.get('TRANSLATION_FEED'): + if self.settings.get('TRANSLATION_FEED_ATOM') or self.settings.get('TRANSLATION_FEED_RSS'): translations_feeds = defaultdict(list) for article in chain(self.articles, self.translations): translations_feeds[article.lang].append(article) for lang, items in translations_feeds.items(): items.sort(key=attrgetter('date'), reverse=True) - writer.write_feed(items, self.context, - self.settings['TRANSLATION_FEED'] % lang) + if self.settings.get('TRANSLATION_FEED_ATOM'): + writer.write_feed(items, self.context, + self.settings['TRANSLATION_FEED_ATOM'] % lang) + if self.settings.get('TRANSLATION_FEED_RSS'): + writer.write_feed(items, self.context, + self.settings['TRANSLATION_FEED_RSS'] % lang, + feed_type='rss') def generate_articles(self, write): """Generate the articles.""" diff --git a/pelican/settings.py b/pelican/settings.py index 27a0c51f..4d1ed81e 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -26,7 +26,7 @@ _DEFAULT_CONFIG = {'PATH': '.', 'THEME_STATIC_PATHS': ['static', ], 'FEED_ATOM': 'feeds/all.atom.xml', 'CATEGORY_FEED_ATOM': 'feeds/%s.atom.xml', - 'TRANSLATION_FEED': 'feeds/all-%s.atom.xml', + 'TRANSLATION_FEED_ATOM': 'feeds/all-%s.atom.xml', 'FEED_MAX_ITEMS': '', 'SITEURL': '', 'SITENAME': 'A Pelican Blog',