mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #8757 from tk0miya/8756_viewcode_purge_doc
Fix #8756: viewcode: highlighted code is generated even if not referenced
This commit is contained in:
1
CHANGES
1
CHANGES
@@ -88,6 +88,7 @@ Bugs fixed
|
||||
copied
|
||||
* #8720: viewcode: module pages are generated for epub on incremental build
|
||||
* #8704: viewcode: anchors are generated in incremental build after singlehtml
|
||||
* #8756: viewcode: highlighted code is generated even if not referenced
|
||||
* #8671: :confval:`highlight_options` is not working
|
||||
* #8341: C, fix intersphinx lookup types for names in declarations.
|
||||
* C, C++: in general fix intersphinx and role lookup types.
|
||||
|
||||
@@ -149,6 +149,18 @@ def env_merge_info(app: Sphinx, env: BuildEnvironment, docnames: Iterable[str],
|
||||
env._viewcode_modules.update(other._viewcode_modules) # type: ignore
|
||||
|
||||
|
||||
def env_purge_doc(app: Sphinx, env: BuildEnvironment, docname: str) -> None:
|
||||
modules = getattr(env, '_viewcode_modules', {})
|
||||
|
||||
for modname, (code, tags, used, refname) in list(modules.items()):
|
||||
for fullname in list(used):
|
||||
if used[fullname] == docname:
|
||||
used.pop(fullname)
|
||||
|
||||
if len(used) == 0:
|
||||
modules.pop(modname)
|
||||
|
||||
|
||||
class ViewcodeAnchorTransform(SphinxPostTransform):
|
||||
"""Convert or remove viewcode_anchor nodes depends on builder."""
|
||||
default_priority = 100
|
||||
@@ -323,6 +335,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_config_value('viewcode_follow_imported_members', True, False)
|
||||
app.connect('doctree-read', doctree_read)
|
||||
app.connect('env-merge-info', env_merge_info)
|
||||
app.connect('env-purge-doc', env_purge_doc)
|
||||
app.connect('html-collect-pages', collect_pages)
|
||||
app.connect('missing-reference', missing_reference)
|
||||
# app.add_config_value('viewcode_include_modules', [], 'env')
|
||||
|
||||
Reference in New Issue
Block a user