From d43dc1b9d6ba5f0f99c6de44db214f296558c701 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 3 Jun 2013 15:15:53 -0400 Subject: [PATCH] Add the EXTRA_PATH_METADATA setting Useful for altering static output paths when you don't want to encode extra metadata in the static file's source path. --- docs/settings.rst | 1 + pelican/readers.py | 9 ++++++--- pelican/settings.py | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/settings.rst b/docs/settings.rst index a75badfc..c7d7f199 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -64,6 +64,7 @@ Setting name (default value) What doe ``'(?P\d{4}-\d{2}-\d{2})_(?P.*)'``. `PATH_METADATA` (``''``) Like ``FILENAME_METADATA``, but parsed from a page's full path relative to the content source directory. +`EXTRA_PATH_METADATA` (``{}``) Extra metadata dictionaries keyed by relative path. `DELETE_OUTPUT_DIRECTORY` (``False``) Delete the output directory, and **all** of its contents, before generating new files. This can be useful in preventing older, unnecessary files from persisting in your output. However, **this is diff --git a/pelican/readers.py b/pelican/readers.py index 3cf69dcf..3e00b430 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -413,9 +413,12 @@ def default_metadata(settings=None, process=None): def path_metadata(full_path, source_path, settings=None): metadata = {} - if settings and settings.get('DEFAULT_DATE', None) == 'fs': - metadata['date'] = datetime.datetime.fromtimestamp( - os.stat(path).st_ctime) + if settings: + if settings.get('DEFAULT_DATE', None) == 'fs': + metadata['date'] = datetime.datetime.fromtimestamp( + os.stat(full_path).st_ctime) + metadata.update(settings.get('EXTRA_PATH_METADATA', {}).get( + source_path, {})) return metadata diff --git a/pelican/settings.py b/pelican/settings.py index 5386d172..13896032 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -95,6 +95,7 @@ DEFAULT_CONFIG = { 'DEFAULT_METADATA': (), 'FILENAME_METADATA': '(?P\d{4}-\d{2}-\d{2}).*', 'PATH_METADATA': '', + 'EXTRA_PATH_METADATA': {}, 'DEFAULT_STATUS': 'published', 'ARTICLE_PERMALINK_STRUCTURE': '', 'TYPOGRIFY': False,