Skip to content

Commit

Permalink
Don't spcify unlimited feed size by default
Browse files Browse the repository at this point in the history
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 = False
  • Loading branch information
mart-e committed May 6, 2023
1 parent 86f62d0 commit c243362
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/settings.rst
Expand Up @@ -1000,8 +1000,8 @@ the ``TAG_FEED_ATOM`` and ``TAG_FEED_RSS`` settings:

.. data:: FEED_MAX_ITEMS

Maximum number of items allowed in a feed. Feed item quantity is
unrestricted by default.
Maximum number of items allowed in a feed. `False` for unrestricted. 100 if
not specified.

.. data:: RSS_FEED_SUMMARY_ONLY = True

Expand Down
12 changes: 8 additions & 4 deletions pelican/writers.py
Expand Up @@ -143,11 +143,15 @@ def write_feed(self, elements, context, path=None, url=None,

feed = self._create_new_feed(feed_type, feed_title, context)

max_items = len(elements)
if self.settings['FEED_MAX_ITEMS']:
max_items = min(self.settings['FEED_MAX_ITEMS'], max_items)
for i in range(max_items):
self._add_item_to_the_feed(feed, elements[i])
last_item = self.settings['FEED_MAX_ITEMS']
elif isinstance(self.settings['FEED_MAX_ITEMS'], bool):
# explicitly set FEED_MAX_ITEMS = False
last_item = len(elements)
else:
last_item = 100
for element in elements[:last_item]:
self._add_item_to_the_feed(feed, element)

signals.feed_generated.send(context, feed=feed)
if path:
Expand Down

0 comments on commit c243362

Please sign in to comment.