diff --git a/docs/settings.rst b/docs/settings.rst index 8d637b3b..a7768514 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -1004,10 +1004,10 @@ the ``TAG_FEED_ATOM`` and ``TAG_FEED_RSS`` settings: placeholder. If not set, ``TAG_FEED_RSS`` is used both for save location and URL. -.. data:: FEED_MAX_ITEMS +.. data:: FEED_MAX_ITEMS = 100 - Maximum number of items allowed in a feed. Feed item quantity is - unrestricted by default. + Maximum number of items allowed in a feed. Setting to ``None`` will cause the + feed to contains every article. 100 if not specified. .. data:: RSS_FEED_SUMMARY_ONLY = True diff --git a/pelican/settings.py b/pelican/settings.py index e97bda93..9a54b2a6 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -43,7 +43,7 @@ DEFAULT_CONFIG = { 'AUTHOR_FEED_ATOM': 'feeds/{slug}.atom.xml', 'AUTHOR_FEED_RSS': 'feeds/{slug}.rss.xml', 'TRANSLATION_FEED_ATOM': 'feeds/all-{lang}.atom.xml', - 'FEED_MAX_ITEMS': '', + 'FEED_MAX_ITEMS': 100, 'RSS_FEED_SUMMARY_ONLY': True, 'SITEURL': '', 'SITENAME': 'A Pelican Blog', diff --git a/pelican/writers.py b/pelican/writers.py index afc8e4b7..632c6b87 100644 --- a/pelican/writers.py +++ b/pelican/writers.py @@ -145,11 +145,9 @@ class Writer: 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]) + # FEED_MAX_ITEMS = None means [:None] to get every element + for element in elements[:self.settings['FEED_MAX_ITEMS']]: + self._add_item_to_the_feed(feed, element) signals.feed_generated.send(context, feed=feed) if path: