mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Warn on missing rst document title. Fixes #2311.
This commit is contained in:
parent
81b7e7481f
commit
fb6d44712b
1 changed files with 9 additions and 2 deletions
|
|
@ -203,11 +203,18 @@ class RstReader(BaseReader):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(RstReader, self).__init__(*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"""
|
"""Return the dict containing document metadata"""
|
||||||
formatted_fields = self.settings['FORMATTED_FIELDS']
|
formatted_fields = self.settings['FORMATTED_FIELDS']
|
||||||
|
|
||||||
output = {}
|
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 docinfo in document.traverse(docutils.nodes.docinfo):
|
||||||
for element in docinfo.children:
|
for element in docinfo.children:
|
||||||
if element.tagname == 'field': # custom fields (e.g. summary)
|
if element.tagname == 'field': # custom fields (e.g. summary)
|
||||||
|
|
@ -257,7 +264,7 @@ class RstReader(BaseReader):
|
||||||
parts = pub.writer.parts
|
parts = pub.writer.parts
|
||||||
content = parts.get('body')
|
content = parts.get('body')
|
||||||
|
|
||||||
metadata = self._parse_metadata(pub.document)
|
metadata = self._parse_metadata(pub.document, source_path)
|
||||||
metadata.setdefault('title', parts.get('title'))
|
metadata.setdefault('title', parts.get('title'))
|
||||||
|
|
||||||
return content, metadata
|
return content, metadata
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue