File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -95,6 +95,7 @@ def setup(app: Sphinx) -> dict[str, bool]:
9595 ) # Transform PEP references to links
9696
9797 app .add_post_transform (pep_references .PEPReferenceRoleTitleText )
98+ app .add_post_transform (pep_references .PEPIntersphinxTitleText )
9899
99100 # Register custom directives
100101 app .add_directive ("pep-banner" , pep_banner_directive .PEPBanner )
Original file line number Diff line number Diff line change 1+ import re
12from pathlib import Path
23
34from docutils import nodes , transforms
@@ -33,3 +34,26 @@ def apply(self) -> None:
3334 node ["reftitle" ] += f" § { target_ids [fragment ][0 ].astext ()} "
3435 except KeyError :
3536 pass
37+
38+
39+ class PEPIntersphinxTitleText (transforms .Transform ):
40+ """Remove version numbers from intersphinx reference title text.
41+
42+ Intersphinx sets ``reftitle`` to "(in <project> v<version>)" from the
43+ target's inventory. Version changes between builds make otherwise-unchanged
44+ pages appear modified in Read the Docs PR previews.
45+ """
46+
47+ # Run after Sphinx's ReferencesResolver (priority 10) has resolved
48+ # intersphinx references
49+ default_priority = 740
50+
51+ version_pattern = re .compile (r"^\(in (.+?) v?\d[^\s)]*\)$" )
52+
53+ def apply (self ) -> None :
54+ for node in self .document .findall (nodes .reference ):
55+ if node .get ("internal" , True ):
56+ continue
57+ reftitle = node .get ("reftitle" , "" )
58+ if reftitle :
59+ node ["reftitle" ] = self .version_pattern .sub (r"(in \1)" , reftitle )
Original file line number Diff line number Diff line change 7070# Intersphinx configuration (keep this in alphabetical order)
7171intersphinx_mapping = {
7272 "devguide" : ("https://devguide.python.org" , None ),
73- "mypy" : ("https://mypy.readthedocs.io/en/latest " , None ),
73+ "mypy" : ("https://mypy.readthedocs.io/en/stable " , None ),
7474 "packaging" : ("https://packaging.python.org/en/latest" , None ),
7575 "py3.11" : ("https://docs.python.org/3.11" , None ),
7676 "py3.12" : ("https://docs.python.org/3.12" , None ),
You can’t perform that action at this time.
0 commit comments