230c230 < def _parse_metadata(self, document, source_path): --- > def _parse_metadata(self, document, source_path, nowarning_about_missing_title): 236,240c236,241 < 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) --- > if nowarning_about_missing_title is False: > 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) 293,294c293,298 < metadata = self._parse_metadata(pub.document, source_path) < metadata.setdefault('title', parts.get('title')) --- > title = parts.get('title') > if title: > metadata = self._parse_metadata(pub.document, source_path, nowarning_about_missing_title=False) > metadata.setdefault('title', title) > else: > metadata = self._parse_metadata(pub.document, source_path, nowarning_about_missing_title=True)