personal-site/swap_guids.py

31 lines
797 B
Python

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)