This commit is contained in:
Robert Utter 2015-04-17 01:55:08 +00:00
commit d3bb6e8d5e
3 changed files with 14 additions and 1 deletions

View file

@ -61,6 +61,8 @@ Setting name (followed by default value, if any)
If ``'fs'``, Pelican will use the file system
timestamp information (mtime) if it can't get
date information from the metadata.
If given any other string, it will be parsed by the same method
as article metadata.
If set to a tuple object, the default datetime object will instead
be generated by passing the tuple to the
``datetime.datetime`` constructor.

View file

@ -575,7 +575,10 @@ def default_metadata(settings=None, process=None):
value = process('category', value)
metadata['category'] = value
if settings.get('DEFAULT_DATE', None) and settings['DEFAULT_DATE'] != 'fs':
metadata['date'] = SafeDatetime(*settings['DEFAULT_DATE'])
if isinstance(settings['DEFAULT_DATE'], six.string_types):
metadata['date'] = get_date(settings['DEFAULT_DATE'])
else:
metadata['date'] = SafeDatetime(*settings['DEFAULT_DATE'])
return metadata

View file

@ -208,6 +208,14 @@ class RstReaderTest(ReaderTest):
for key, value in expected.items():
self.assertEqual(value, page.metadata[key], key)
def test_default_date_formats(self):
tuple_date = self.read_file(path='article.rst',
DEFAULT_DATE=(2012, 5, 1))
string_date = self.read_file(path='article.rst',
DEFAULT_DATE='2012-05-01')
self.assertEqual(tuple_date.metadata['date'], string_date.metadata['date'])
class MdReaderTest(ReaderTest):