1
0
Fork 0
forked from github/pelican

Warn on missing rst document title. Fixes #2311.

This commit is contained in:
George Leslie-Waksman 2018-03-26 23:59:47 -07:00
commit fb6d44712b

View file

@ -203,11 +203,18 @@ class RstReader(BaseReader):
def __init__(self, *args, **kwargs):
super(RstReader, self).__init__(*args, **kwargs)
def _parse_metadata(self, document):
def _parse_metadata(self, document, source_path):
"""Return the dict containing document metadata"""
formatted_fields = self.settings['FORMATTED_FIELDS']
output = {}
if document.first_child_matching_class(docutils.nodes.title) is None:
logger.warning(
'Document title missing in file %s: '
'Ensure exactly one top level section',
source_path)
for docinfo in document.traverse(docutils.nodes.docinfo):
for element in docinfo.children:
if element.tagname == 'field': # custom fields (e.g. summary)
@ -257,7 +264,7 @@ class RstReader(BaseReader):
parts = pub.writer.parts
content = parts.get('body')
metadata = self._parse_metadata(pub.document)
metadata = self._parse_metadata(pub.document, source_path)
metadata.setdefault('title', parts.get('title'))
return content, metadata