Additional filter for TAG feed generation

New setting "TAGS_FOR_FEED" is introduced, default is []
If TAGS_FOR_FEED is set then it will generate feed only for
those tags.

Example usage
TAGS_FOR_FEED = ["thats", "awesome"]

Signed-off-by: Aravinda VK <mail@aravindavk.in>
This commit is contained in:
Aravinda VK 2014-09-05 12:23:13 +05:30
commit 879f30099d
2 changed files with 6 additions and 1 deletions

View file

@ -288,7 +288,11 @@ class ArticlesGenerator(CachingGenerator):
if (self.settings.get('TAG_FEED_ATOM') if (self.settings.get('TAG_FEED_ATOM')
or self.settings.get('TAG_FEED_RSS')): or self.settings.get('TAG_FEED_RSS')):
tags_filter = self.settings.get('TAGS_FOR_FEED')
for tag, arts in self.tags.items(): for tag, arts in self.tags.items():
if tags_filter and tag.slug not in tags_filter:
continue
arts.sort(key=attrgetter('date'), reverse=True) arts.sort(key=attrgetter('date'), reverse=True)
if self.settings.get('TAG_FEED_ATOM'): if self.settings.get('TAG_FEED_ATOM'):
writer.write_feed(arts, self.context, writer.write_feed(arts, self.context,

View file

@ -130,6 +130,7 @@ DEFAULT_CONFIG = {
'LOAD_CONTENT_CACHE': True, 'LOAD_CONTENT_CACHE': True,
'AUTORELOAD_IGNORE_CACHE': False, 'AUTORELOAD_IGNORE_CACHE': False,
'WRITE_SELECTED': [], 'WRITE_SELECTED': [],
'TAGS_FOR_FEED': [],
} }
PYGMENTS_RST_OPTIONS = None PYGMENTS_RST_OPTIONS = None
@ -287,7 +288,7 @@ def configure_settings(settings):
'CATEGORY_FEED_ATOM', 'CATEGORY_FEED_RSS', 'CATEGORY_FEED_ATOM', 'CATEGORY_FEED_RSS',
'AUTHOR_FEED_ATOM', 'AUTHOR_FEED_RSS', 'AUTHOR_FEED_ATOM', 'AUTHOR_FEED_RSS',
'TAG_FEED_ATOM', 'TAG_FEED_RSS', 'TAG_FEED_ATOM', 'TAG_FEED_RSS',
'TRANSLATION_FEED_ATOM', 'TRANSLATION_FEED_RSS', 'TRANSLATION_FEED_ATOM', 'TRANSLATION_FEED_RSS', 'TAGS_FOR_FEED'
] ]
if any(settings.get(k) for k in feed_keys): if any(settings.get(k) for k in feed_keys):