Prettier console output from latex, texinfo, singlehtml and man page builders while inlining toctrees (#12681)

This commit is contained in:
Jean-François B. 2024-07-31 08:38:19 +02:00 committed by GitHub
parent f0365cda38
commit 4a95555eae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 11 additions and 8 deletions

View File

@ -293,7 +293,7 @@ class LaTeXBuilder(Builder):
toctree_only = entry[5]
destination = SphinxFileOutput(destination_path=path.join(self.outdir, targetname),
encoding='utf-8', overwrite_if_changed=True)
with progress_message(__("processing %s") % targetname):
with progress_message(__("processing %s") % targetname, nonl=False):
doctree = self.env.get_doctree(docname)
toctree = next(doctree.findall(addnodes.toctree), None)
if toctree and toctree.get('maxdepth') > 0:
@ -344,7 +344,7 @@ class LaTeXBuilder(Builder):
self, indexfile: str, toctree_only: bool, appendices: list[str],
) -> nodes.document:
self.docnames = {indexfile, *appendices}
logger.info(darkgreen(indexfile) + " ", nonl=True)
logger.info(darkgreen(indexfile))
tree = self.env.get_doctree(indexfile)
tree['docname'] = indexfile
if toctree_only:

View File

@ -86,7 +86,7 @@ class ManualPageBuilder(Builder):
else:
targetname = f'{name}.{section}'
logger.info(darkgreen(targetname) + ' { ', nonl=True)
logger.info(darkgreen(targetname) + ' { ')
destination = FileOutput(
destination_path=path.join(self.outdir, targetname),
encoding='utf-8')

View File

@ -80,6 +80,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
def assemble_doctree(self) -> nodes.document:
master = self.config.root_doc
tree = self.env.get_doctree(master)
logger.info(darkgreen(master))
tree = inline_all_toctrees(self, set(), master, tree, darkgreen, [master])
tree['docname'] = master
self.env.resolve_references(tree, master, self)
@ -157,7 +158,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
with progress_message(__('preparing documents')):
self.prepare_writing(docnames) # type: ignore[arg-type]
with progress_message(__('assembling single document')):
with progress_message(__('assembling single document'), nonl=False):
doctree = self.assemble_doctree()
self.env.toc_secnumbers = self.assemble_toc_secnumbers()
self.env.toc_fignumbers = self.assemble_toc_fignumbers()

View File

@ -104,7 +104,7 @@ class TexinfoBuilder(Builder):
destination = FileOutput(
destination_path=path.join(self.outdir, targetname),
encoding='utf-8')
with progress_message(__("processing %s") % targetname):
with progress_message(__("processing %s") % targetname, nonl=False):
appendices = self.config.texinfo_appendices or []
doctree = self.assemble_doctree(docname, toctree_only, appendices=appendices)
@ -135,7 +135,7 @@ class TexinfoBuilder(Builder):
self, indexfile: str, toctree_only: bool, appendices: list[str],
) -> nodes.document:
self.docnames = {indexfile, *appendices}
logger.info(darkgreen(indexfile) + " ", nonl=True)
logger.info(darkgreen(indexfile))
tree = self.env.get_doctree(indexfile)
tree['docname'] = indexfile
if toctree_only:

View File

@ -414,6 +414,7 @@ def inline_all_toctrees(
tree: nodes.document,
colorfunc: Callable[[str], str],
traversed: list[str],
indent: str = '',
) -> nodes.document:
"""Inline all toctrees in the *tree*.
@ -423,14 +424,15 @@ def inline_all_toctrees(
for toctreenode in list(tree.findall(addnodes.toctree)):
newnodes = []
includefiles = map(str, toctreenode['includefiles'])
indent += ' '
for includefile in includefiles:
if includefile not in traversed:
try:
traversed.append(includefile)
logger.info(colorfunc(includefile) + " ", nonl=True)
logger.info(indent + colorfunc(includefile))
subtree = inline_all_toctrees(builder, docnameset, includefile,
builder.env.get_doctree(includefile),
colorfunc, traversed)
colorfunc, traversed, indent)
docnameset.add(includefile)
except Exception:
logger.warning(__('toctree contains ref to nonexisting file %r'),