Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
gh-134895: Add sphinx-codeautolink to doc build#134896
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Conversation
@StanFromIreland It is absolutely possible to style the links in any way we want, but for reviewing theeffect of the extension (i.e., what it links and what it doesn't), it is helpful to have styling where the links stand out. I'll amend the styling in this PR after more comments have come in. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
cmarqu commentedMay 30, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
I also have an old all-in-one branch around that fixes most of the warnings in the ReST sources:main...cmarqu:cpython:feat/add-sphinx-codeautolink; to get a feeling of what that would entail. |
Uh oh!
There was an error while loading.Please reload this page.
This PR adds thehttps://sphinx-codeautolink.readthedocs.io/ Sphinx extension to the documentation build process. In their own words, it
In my opinion, it is quite helpful for documentation readers to be able to immediately jump from e.g. tutorial code using
logging.getLogger
(<-- points to the PR doc build that shows the linking) to its reference description.A bit of discussion has happened inhttps://discuss.python.org/t/add-the-sphinx-codeautolink-extension-to-doc-build-process/80814, back when the extension was not as robust and featureful as nowadays.
As said there, the styling of these extra links can be as unobtrusive as we want them.
Code examples that are parseable and self-contained (i.e. have all their imports) will have clickable objects.
Examples that are made up of parts that build on each other can also be supported with some extra markup (not part of this PR).
Missing imports can be annotated "invisibly" (not part of this PR).
Also, in the current state of the documentation, not all code examples thatcould be parseable actuallyare.
#133906 would fix a number of these.
Other examples would benefit from using
.. code-block::
with an explicit language set instead of::
so that special handling forpycon
(clean_pycon
) could kick in. Right now, these places are producing a warning that is handled viasuppress_warnings
.Speaking of
suppress_warnings
, it containsconfig.cache
because ofWARNING: cannot cache unpickleable configuration value: 'codeautolink_custom_blocks' (because it contains a function, class, or module object) [config.cache]
, which is indeed set to the functionclean_pycon
.📚 Documentation preview 📚:https://cpython-previews--134896.org.readthedocs.build/