diff options
author | Deniz Turgut <dturgut@gmail.com> | 2014-08-22 17:53:36 -0400 |
---|---|---|
committer | Deniz Turgut <dturgut@gmail.com> | 2014-08-22 17:53:36 -0400 |
commit | a2bb80b8bdc54b6bcddb7be888d343487e96074d (patch) | |
tree | 3ef78461dc814771e1f5aea1c4c1ac56e1aef6fb | |
parent | b8c9d61f20e2e7a82bf5949738d51a1c0f401808 (diff) | |
download | pelican-a2bb80b8bdc54b6bcddb7be888d343487e96074d.tar.gz |
Fixes #1420: Handle multiple definitions of standard metadata for Markdown
-rw-r--r-- | pelican/readers.py | 7 |
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) |