plugins/extract_date_from_filename.py (12 lines of code) (raw):

from pelican import signals import re from datetime import datetime def extract_date_from_filename(article): regex_pattern = r"(\d{4}-\d{2}-\d{2})-([-_.a-zA-Z0-9]*).md" match = re.match(regex_pattern, article.source_path.split('/')[-1]) if match: # Uncomment if in the future we want to use the filename instead # of what is in the header info in the markdown file # extracted_date = datetime.strptime(match.group(1), "%Y-%m-%d") # extracted_date = datetime.today() # article.metadata['date'] = extracted_date article.metadata['filename'] = match.group(2) else: article.metadata['filename'] = article.source_path.split('/')[-1] def register(): signals.content_object_init.connect(extract_date_from_filename)