personal-site/swap_guids.py

29 lines
669 B
Python

import logging
import pprint
from pelican import signals
log = logging.getLogger(__name__)
def modify_feed(context, feed):
articles = {}
pprint.pprint(context)
for article in context['articles']:
articles[article.title] = article
for item in feed.items:
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)