1
0
Fork 0
forked from github/pelican

Merge pull request #1959 from MrSenko/default-date

Accept string dates in DEFAULT_DATE. Fixes #1464; fixes #1476
This commit is contained in:
Justin Mayer 2016-05-24 17:21:32 +02:00
commit d9605d005d
3 changed files with 15 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

@ -607,7 +607,10 @@ def default_metadata(settings=None, process=None):
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

@ -359,6 +359,15 @@ class RstReaderTest(ReaderTest):
self.assertDictHasSubset(page.metadata, expected)
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'])
@unittest.skipUnless(readers.Markdown, "markdown isn't installed")
class MdReaderTest(ReaderTest):