Add debug logging to autosectionlabel (#10881)

Co-authored-by: Martin Patz <martin@recogni.com>
This commit is contained in:
Martin Patz
2022-10-04 16:25:06 +02:00
committed by GitHub
parent 0a91adb64d
commit 3e29abf8de
3 changed files with 13 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ Features added
* #10840: One can cross-reference including an option value: ``:option:`--module=foobar```.
Patch by Martin Liska.
* #10881: autosectionlabel: Record the generated section label to the debug log.
Bugs fixed
----------

View File

@@ -45,3 +45,12 @@ Configuration
example, when set 1 to ``autosectionlabel_maxdepth``, labels are generated
only for top level sections, and deeper sections are not labeled. It
defaults to ``None`` (disabled).
Debugging
---------
The ``WARNING: undefined label`` indicates that your reference in
:rst:role:`ref` is mis-spelled. Invoking :program:`sphinx-build` with ``-vv``
(see :option:`-v`) will print all section names and the labels that have been
generated for them. This output can help finding the right reference label.

View File

@@ -40,6 +40,9 @@ def register_sections_as_label(app: Sphinx, document: Node) -> None:
name = nodes.fully_normalize_name(ref_name)
sectname = clean_astext(title)
logger.debug(__('section "%s" gets labeled as "%s"'),
ref_name, name,
location=node, type='autosectionlabel', subtype=docname)
if name in domain.labels:
logger.warning(__('duplicate label %s, other instance in %s'),
name, app.env.doc2path(domain.labels[name][0]),