Don't specify unlimited feed size by default

Having a feed with hundreds of articles, making a very large file, is
rarely expected.

Set a high fallback value of 100 so it does not change for small sites.

Still allow to have infinite feed by setting FEED_MAX_ITEM = None
This commit is contained in:
Martin (mart-e) 2023-05-06 08:40:29 +02:00
commit bb682973fb
3 changed files with 7 additions and 9 deletions

View file

@ -998,10 +998,10 @@ the ``TAG_FEED_ATOM`` and ``TAG_FEED_RSS`` settings:
placeholder. If not set, ``TAG_FEED_RSS`` is used both for save location and placeholder. If not set, ``TAG_FEED_RSS`` is used both for save location and
URL. URL.
.. data:: FEED_MAX_ITEMS .. data:: FEED_MAX_ITEMS = 100
Maximum number of items allowed in a feed. Feed item quantity is Maximum number of items allowed in a feed. Setting to ``None`` will cause the
unrestricted by default. feed to contains every article. 100 if not specified.
.. data:: RSS_FEED_SUMMARY_ONLY = True .. data:: RSS_FEED_SUMMARY_ONLY = True

View file

@ -40,7 +40,7 @@ DEFAULT_CONFIG = {
'AUTHOR_FEED_ATOM': 'feeds/{slug}.atom.xml', 'AUTHOR_FEED_ATOM': 'feeds/{slug}.atom.xml',
'AUTHOR_FEED_RSS': 'feeds/{slug}.rss.xml', 'AUTHOR_FEED_RSS': 'feeds/{slug}.rss.xml',
'TRANSLATION_FEED_ATOM': 'feeds/all-{lang}.atom.xml', 'TRANSLATION_FEED_ATOM': 'feeds/all-{lang}.atom.xml',
'FEED_MAX_ITEMS': '', 'FEED_MAX_ITEMS': 100,
'RSS_FEED_SUMMARY_ONLY': True, 'RSS_FEED_SUMMARY_ONLY': True,
'SITEURL': '', 'SITEURL': '',
'SITENAME': 'A Pelican Blog', 'SITENAME': 'A Pelican Blog',

View file

@ -143,11 +143,9 @@ class Writer:
feed = self._create_new_feed(feed_type, feed_title, context) feed = self._create_new_feed(feed_type, feed_title, context)
max_items = len(elements) # FEED_MAX_ITEMS = None means [:None] to get every element
if self.settings['FEED_MAX_ITEMS']: for element in elements[:self.settings['FEED_MAX_ITEMS']]:
max_items = min(self.settings['FEED_MAX_ITEMS'], max_items) self._add_item_to_the_feed(feed, element)
for i in range(max_items):
self._add_item_to_the_feed(feed, elements[i])
signals.feed_generated.send(context, feed=feed) signals.feed_generated.send(context, feed=feed)
if path: if path: