import logging import pprint from pelican import signals log = logging.getLogger(__name__) def modify_feed(context, feed): articles = {} for article in context['articles']: if article.title in articles: raise Exception(f"Duplicate article title found: {article.title}") articles[article.title] = article for item in feed.items: item_title = item['title'] article = articles.get(item_title) if not article: raise Exception(f"Article not found for title: {item_title}") if not hasattr(article, 'guid') or not article.guid: raise Exception(f"Article '{article.title}' is missing a guid.") item['unique_id'] = article.guid def register(): signals.feed_generated.connect(modify_feed)