Skip to content

Commit

Permalink
pythonGH-97950: Allow translation of index directive content (python#…
Browse files Browse the repository at this point in the history
  • Loading branch information
AA-Turner authored May 4, 2023
1 parent 9885677 commit 35d2738
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@
# Avoid a warning with Sphinx >= 2.0
master_doc = 'contents'

# Allow translation of index directives
gettext_additional_targets = [
'index',
]

# Options for HTML output
# -----------------------

Expand Down
29 changes: 29 additions & 0 deletions Doc/tools/extensions/pyspecific.py
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,34 @@ def process_audit_events(app, doctree, fromdocname):
node.replace_self(table)


def patch_pairindextypes(app) -> None:
if app.builder.name != 'gettext':
return

# allow translating deprecated index entries
try:
from sphinx.domains.python import pairindextypes
except ImportError:
pass
else:
# Sphinx checks if a 'pair' type entry on an index directive is one of
# the Sphinx-translated pairindextypes values. As we intend to move
# away from this, we need Sphinx to believe that these values don't
# exist, by deleting them when using the gettext builder.

# pairindextypes.pop('module', None)
# pairindextypes.pop('keyword', None)
# pairindextypes.pop('operator', None)
# pairindextypes.pop('object', None)
# pairindextypes.pop('exception', None)
# pairindextypes.pop('statement', None)
# pairindextypes.pop('builtin', None)

# there needs to be at least one statement in this block, will be
# removed when the first of the below is uncommented.
pass


def setup(app):
app.add_role('issue', issue_role)
app.add_role('gh', gh_issue_role)
Expand All @@ -695,6 +723,7 @@ def setup(app):
app.add_directive_to_domain('py', 'awaitablemethod', PyAwaitableMethod)
app.add_directive_to_domain('py', 'abstractmethod', PyAbstractMethod)
app.add_directive('miscnews', MiscNews)
app.connect('builder-inited', patch_pairindextypes)
app.connect('doctree-resolved', process_audit_events)
app.connect('env-merge-info', audit_events_merge)
app.connect('env-purge-doc', audit_events_purge)
Expand Down

0 comments on commit 35d2738

Please sign in to comment.