summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeniz Turgut <dturgut@gmail.com>2014-08-22 17:53:36 -0400
committerDeniz Turgut <dturgut@gmail.com>2014-08-22 17:53:36 -0400
commita2bb80b8bdc54b6bcddb7be888d343487e96074d (patch)
tree3ef78461dc814771e1f5aea1c4c1ac56e1aef6fb
parentb8c9d61f20e2e7a82bf5949738d51a1c0f401808 (diff)
downloadpelican-a2bb80b8bdc54b6bcddb7be888d343487e96074d.tar.gz
Fixes #1420: Handle multiple definitions of standard metadata for Markdown
-rw-r--r--pelican/readers.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/pelican/readers.py b/pelican/readers.py
index 05ebf956..85147e3e 100644
--- a/pelican/readers.py
+++ b/pelican/readers.py
@@ -201,6 +201,7 @@ class MarkdownReader(BaseReader):
self.extensions = list(self.settings['MD_EXTENSIONS'])
if 'meta' not in self.extensions:
self.extensions.append('meta')
+ self._source_path = None
def _parse_metadata(self, meta):
"""Return the dict containing document metadata"""
@@ -215,6 +216,11 @@ class MarkdownReader(BaseReader):
self._md.reset()
summary = self._md.convert(summary_values)
output[name] = self.process_metadata(name, summary)
+ elif name in METADATA_PROCESSORS:
+ if len(value) > 1:
+ logger.warning('Duplicate definition of `%s` '
+ 'for %s. Using first one.', name, self._source_path)
+ output[name] = self.process_metadata(name, value[0])
elif len(value) > 1:
# handle list metadata as list of string
output[name] = self.process_metadata(name, value)
@@ -226,6 +232,7 @@ class MarkdownReader(BaseReader):
def read(self, source_path):
"""Parse content and metadata of markdown files"""
+ self._source_path = source_path
self._md = Markdown(extensions=self.extensions)
with pelican_open(source_path) as text:
content = self._md.convert(text)