1
0
Fork 0
forked from github/pelican

Convert FEED settings from %s to {slug} redux (#2432)

* Convert FEED settings from `%s` to `{slug}` redux

Closes #2106, Closes #2383
This commit is contained in:
MinchinWeb 2018-11-03 09:12:20 -06:00 committed by Justin Mayer
commit 3a0add4b6e
10 changed files with 165 additions and 102 deletions

View file

@ -302,17 +302,21 @@ class ArticlesGenerator(CachingGenerator):
"""Generate the feeds from the current context, and output files."""
if self.settings.get('FEED_ATOM'):
writer.write_feed(self.articles, self.context,
self.settings['FEED_ATOM'],
self.settings.get('FEED_ATOM_URL',
self.settings['FEED_ATOM']))
writer.write_feed(
self.articles,
self.context,
self.settings['FEED_ATOM'],
self.settings.get('FEED_ATOM_URL', self.settings['FEED_ATOM'])
)
if self.settings.get('FEED_RSS'):
writer.write_feed(self.articles, self.context,
self.settings['FEED_RSS'],
self.settings.get('FEED_RSS_URL',
self.settings['FEED_RSS']),
feed_type='rss')
writer.write_feed(
self.articles,
self.context,
self.settings['FEED_RSS'],
self.settings.get('FEED_RSS_URL', self.settings['FEED_RSS']),
feed_type='rss'
)
if (self.settings.get('FEED_ALL_ATOM') or
self.settings.get('FEED_ALL_RSS')):
@ -323,80 +327,105 @@ class ArticlesGenerator(CachingGenerator):
order_by=self.settings['ARTICLE_ORDER_BY'])
if self.settings.get('FEED_ALL_ATOM'):
writer.write_feed(all_articles, self.context,
self.settings['FEED_ALL_ATOM'],
self.settings.get(
'FEED_ALL_ATOM_URL',
self.settings['FEED_ALL_ATOM']))
writer.write_feed(
all_articles,
self.context,
self.settings['FEED_ALL_ATOM'],
self.settings.get('FEED_ALL_ATOM_URL',
self.settings['FEED_ALL_ATOM'])
)
if self.settings.get('FEED_ALL_RSS'):
writer.write_feed(all_articles, self.context,
self.settings['FEED_ALL_RSS'],
self.settings.get(
'FEED_ALL_RSS_URL',
writer.write_feed(
all_articles,
self.context,
self.settings['FEED_ALL_RSS'],
self.settings.get('FEED_ALL_RSS_URL',
self.settings['FEED_ALL_RSS']),
feed_type='rss')
feed_type='rss'
)
for cat, arts in self.categories:
if self.settings.get('CATEGORY_FEED_ATOM'):
writer.write_feed(arts, self.context,
self.settings['CATEGORY_FEED_ATOM']
% cat.slug,
self.settings.get(
'CATEGORY_FEED_ATOM_URL',
self.settings['CATEGORY_FEED_ATOM'])
% cat.slug, feed_title=cat.name)
writer.write_feed(
arts,
self.context,
self.settings['CATEGORY_FEED_ATOM'].format(slug=cat.slug),
self.settings.get(
'CATEGORY_FEED_ATOM_URL',
self.settings['CATEGORY_FEED_ATOM']).format(
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,
self.settings.get(
'CATEGORY_FEED_RSS_URL',
self.settings['CATEGORY_FEED_RSS'])
% cat.slug, feed_title=cat.name,
feed_type='rss')
writer.write_feed(
arts,
self.context,
self.settings['CATEGORY_FEED_RSS'].format(slug=cat.slug),
self.settings.get(
'CATEGORY_FEED_RSS_URL',
self.settings['CATEGORY_FEED_RSS']).format(
slug=cat.slug
),
feed_title=cat.name,
feed_type='rss'
)
for auth, arts in self.authors:
if self.settings.get('AUTHOR_FEED_ATOM'):
writer.write_feed(arts, self.context,
self.settings['AUTHOR_FEED_ATOM']
% auth.slug,
self.settings.get(
'AUTHOR_FEED_ATOM_URL',
self.settings['AUTHOR_FEED_ATOM'])
% auth.slug, feed_title=auth.name)
writer.write_feed(
arts,
self.context,
self.settings['AUTHOR_FEED_ATOM'].format(slug=auth.slug),
self.settings.get(
'AUTHOR_FEED_ATOM_URL',
self.settings['AUTHOR_FEED_ATOM']
).format(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,
self.settings.get(
'AUTHOR_FEED_RSS_URL',
self.settings['AUTHOR_FEED_RSS'])
% auth.slug, feed_title=auth.name,
feed_type='rss')
writer.write_feed(
arts,
self.context,
self.settings['AUTHOR_FEED_RSS'].format(slug=auth.slug),
self.settings.get(
'AUTHOR_FEED_RSS_URL',
self.settings['AUTHOR_FEED_RSS']
).format(slug=auth.slug),
feed_title=auth.name,
feed_type='rss'
)
if (self.settings.get('TAG_FEED_ATOM') or
self.settings.get('TAG_FEED_RSS')):
for tag, arts in self.tags.items():
if self.settings.get('TAG_FEED_ATOM'):
writer.write_feed(arts, self.context,
self.settings['TAG_FEED_ATOM']
% tag.slug,
self.settings.get(
'TAG_FEED_ATOM_URL',
self.settings['TAG_FEED_ATOM'])
% tag.slug, feed_title=tag.name)
writer.write_feed(
arts,
self.context,
self.settings['TAG_FEED_ATOM'].format(slug=tag.slug),
self.settings.get(
'TAG_FEED_ATOM_URL',
self.settings['TAG_FEED_ATOM']
).format(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,
self.settings.get(
'TAG_FEED_RSS_URL',
self.settings['TAG_FEED_RSS'])
% tag.slug, feed_title=tag.name,
feed_type='rss')
writer.write_feed(
arts,
self.context,
self.settings['TAG_FEED_RSS'].format(slug=tag.slug),
self.settings.get(
'TAG_FEED_RSS_URL',
self.settings['TAG_FEED_RSS']
).format(slug=tag.slug),
feed_title=tag.name,
feed_type='rss'
)
if (self.settings.get('TRANSLATION_FEED_ATOM') or
self.settings.get('TRANSLATION_FEED_RSS')):
@ -409,19 +438,27 @@ class ArticlesGenerator(CachingGenerator):
items, order_by=self.settings['ARTICLE_ORDER_BY'])
if self.settings.get('TRANSLATION_FEED_ATOM'):
writer.write_feed(
items, self.context,
self.settings['TRANSLATION_FEED_ATOM'] % lang,
items,
self.context,
self.settings['TRANSLATION_FEED_ATOM']
.format(lang=lang),
self.settings.get(
'TRANSLATION_FEED_ATOM_URL',
self.settings['TRANSLATION_FEED_ATOM']) % lang)
self.settings['TRANSLATION_FEED_ATOM']
).format(lang=lang),
)
if self.settings.get('TRANSLATION_FEED_RSS'):
writer.write_feed(
items, self.context,
self.settings['TRANSLATION_FEED_RSS'] % lang,
items,
self.context,
self.settings['TRANSLATION_FEED_RSS']
.format(lang=lang),
self.settings.get(
'TRANSLATION_FEED_RSS_URL',
self.settings['TRANSLATION_FEED_RSS']) % lang,
feed_type='rss')
self.settings['TRANSLATION_FEED_RSS']
).format(lang=lang),
feed_type='rss'
)
def generate_articles(self, write):
"""Generate the articles."""