Release notes

These release notes are based on Keep a Changelog. sphinx-codeautolink adheres to Semantic Versioning.

0.20.0 (2026-11-08)

  • Inject links while each page is written, instead of rewriting the HTML files after the build. This makes builds faster, and fixes links missing from pages that Sphinx rewrites without their source changing, such as the parent of a renamed toctree entry (#205)

  • Don’t link names assigned from a call returning a union such as Foo | Bar to typing.Union on Python 3.14

  • Support Python 3.15 officially, and remove support for 3.10 (#206)

  • Link assignments from builtins (#207)

  • Avoid crashing in dict comprehensions with ** unpacking (#208)

  • Link names in bounds and defaults of type parameters (#209)

  • Track type alias statements (#210)

  • Link comprehension targets from the iterable (#211)

0.19.0 (2026-07-29)

  • Only add a hover title to links when the resolved location of the object differs from the linked code, and add codeautolink_disable_link_titles to disable the titles altogether (#200)

  • Fix “Could not match transformation” warnings for assignments to attributes such as thing.attr = 1 (#201)

  • Resolve typing.Self return annotations, respecting inheritance so a Self-returning method accessed through a subclass or mixin resolves to the accessing class rather than the class it’s defined on (#147)

0.18.1 (2026-04-30)

  • Recognize aliased TYPE_CHECKING imports such as from typing import TYPE_CHECKING as _TYPE_CHECKING (#199)

0.18.0 (2026-04-25)

  • Support module attributes and class aliases (#65)

  • Resolve for-loop iterables into targets. for target in lib.iterable(): now links target.method() in the loop body (#196)

  • Resolve return annotations that reference names imported inside if TYPE_CHECKING: and similar blocks (#197)

  • Support Python 3.14 officially (#198)

0.17.5 (2025-07-09)

  • Add Python to default lexers (#194)

0.17.4 (2025-03-07)

  • Fix backreference links using relative URIs (#190)

0.17.3 (2025-03-06)

  • Fix Sphinx InventoryItem deprecation warning (#173)

  • Add support for the DIRHTML Sphinx builder (#188)

0.17.2 (2025-03-02)

  • Support testsetup from sphinx.ext.doctest as another type of preface (#186)

0.17.1 (2025-02-24)

  • Add translations via i18n (#164)

  • Fix attribute and call after walrus leading parser error (#174)

  • Fix parsing error in doctest blocks with empty lines (#176)

  • Improve error message on uncaught parsing errors (#177)

  • Add level argument to autolink-preface to support file-level prefaces (#180)

0.17.0 (2025-02-18)

Added

  • Add more Pygments lexer aliases in code blocks (#160)

  • Introduce codeautolink_warn_on_no_backreference to highlight where reference documentation does not appear to have a corresponding tutorial or how-to (#161)

  • Support the default lexer, literal blocks, .. highlight:: directive and highlight_language configuration (#166)

  • Add codeautolink_warn_on_default_parse_fail to warn about failing to link code blocks without a language parameter (#166)

  • Detect and implicitly use pycon lexer for blocks that look like console code (#168)

Fixed

  • Fix undocumented class attribute leading to a crash (#165)

  • Fix skipping blocks with identical content to linked ones (#172)

0.16.2 (2025-01-16)

  • Fix regression in not handling malformed return types (#159)

0.16.1 (2025-01-15)

  • Fix regression in not handling invalid return type hints (#158)

0.16.0 (2025-01-11)

  • Declare support for Python 3.12 and 3.13 (#150)

  • Remove support for Python 3.7-3.9 (#150, #157)

  • Fix changed whitespace handling in Pygments 2.19 (#152)

  • Improve support for future and string annotations (#155)

0.15.2 (2024-06-03)

  • Fix matching of import a, b (#142)

0.15.1 (2024-04-17)

  • Fix linking blocks with line numbers (#137)

  • Use safer version of mro to support type (#120)

0.15.0 (2023-02-05)

  • Fix handling of syntax errors in parsed blocks (#135)

  • Differentiate warning types of block cleaning and parsing (#136)

0.14.1 (2023-01-30)

  • Fix added debug info on failed resolving crashing the build (#134)

0.14.0 (2023-01-28)

  • Add configuration for mapping inventory locations (codeautolink_inventory_map) (#131)

  • Improve warning messages to include debugging hints (#131)

  • Fix AnnAssigns with no links not overwriting values (#133)

0.13.2 (2023-01-26)

  • Fix parsing IPython blocks that had a leading comment (#130)

0.13.1 (2023-01-16)

  • Fix IPython block parsing where output is not prefixed with Out (#129)

0.13.0 (2023-01-08)

  • Declare support for Python 3.11 (#122)

  • Remove support for Python 3.6 (#123)

  • Disallow faulty IPython version 8.7.0 (#124)

  • Correctly require Beautiful Soup version 4.8.1 (#128)

0.12.1 (2022-11-05)

  • Created an Anaconda (Conda-Forge) binary (#111)

  • Fix IPython parsing on multiline output and empty input (#119)

0.12.0 (2022-09-14)

  • Link assignment targets, bare names and annotated function arguments (#109)

  • Initial support for match statement (#110)

  • Fix links when assigning walrus statement result (#112)

  • Fix links in multi-assignments when one target is unlinkable (#113)

0.11.0 (2022-06-08)

  • Support Python 3.10 (#33)

  • Include the expected location of a type in codeautolink_warn_on_failed_resolve for debugging (#106)

  • Define extension environment version for Sphinx (#107)

  • Merge environments only when the extension is active (#107)

  • Link arguments and annotated assignment with type hints (#108)

0.10.0 (2022-01-25)

0.9.0 (2022-01-13)

  • Use Sphinx logging instead of raising exceptions (#86)

  • Link builtins if visible to intersphinx (#87)

  • Use Sphinx logging instead of the builtin warnings to warn (#89, #94)

  • Support IPython’s .. ipython:: directive (#91)

0.8.0 (2021-12-16)

  • Correctly test for optional types in annotations (#72)

  • Don’t check for notranslate CSS class, allowing for additional classes (#75)

  • Allow to specify block parsers as importable references (#76)

  • Allow parallel builds (#77)

  • Automatic support for ipython3 code blocks (#79)

  • Correctly produce links for py code blocks (#81)

0.7.0 (2021-11-28)

  • Declare CSS class as public API (#3)

  • Add ability to link to subclass documentation (#68)

  • Append a newline to error messages with source code (#70)

  • Fix unpacking starred assignment (#71)

  • Improve errors with information about the current document (#71)

0.6.0 (2021-11-21)

  • Remove text decoration from produced links (#3)

  • Turn autodoc integration off by default (#58)

  • Avoid index error when handling syntax errors (#60)

  • Construct fully-qualified names more strictly to avoid hiding other issues (#61)

  • Resolve string annotations in the module scope (#62)

  • Correctly ensure that return annotations are valid types (#63)

  • Resolve imported functions to their original location if a documentation entry is not found in the used location (#64)

  • Fix multi-target assignment and unpacked assignment (#66)

  • Correctly accept None as a custom block transformer (#67)

  • Document support for sphinx.ext.doctest blocks (#67)

0.5.1 (2021-11-20)

  • Fix intersphinx links in documents inside folders (#56)

0.5.0 (2021-11-07)

This release changes an internal API. Please delete the cache file before building documentation.

  • Link import statements (#42)

  • Gracefully handle functions that don’t have an annotations dict (#47)

  • Enable configurations without autodoc (#48)

  • Support custom code block syntax (#49)

  • Fix crash on annotation-only assignment (#50)

  • Fix issue with filenames that have dots (#52)

  • Correctly remove extension when building non-HTML documentation (#53)

  • Support searching extra CSS classes for code example matching (#54)

  • Add configuration for global default concatenation state (#55)

0.4.0 (2021-10-08)

  • Support fluent interfaces (#37)

  • Fix links for names that shadow builtins (#38)

  • Support doctest blocks (#39)

0.3.0 (2021-10-05)

  • Treat optional types as their underlying type (#21)

  • Improve autolink-examples argument structure and provide an option making a collapsible table (#25)

  • Rename directives for consistency (#27)

  • Correctly link decorators (#28)

  • Move cache to Sphinx doctree directory (#29)

  • Support Python console blocks (#30)

  • Add configuration for default import statements (#31)

  • Support star imports (#32)

  • Accept multiline prefaces (#35)

  • Fix autodoc injection on one-line docstrings (#36)

0.2.1 (2021-10-01)

  • Fix type resolving for class instances (#24)

0.2.0 (2021-10-01)

  • Improve code analysis and follow simple type hints (#5)

  • Improve directive arguments and behavior (#16)

  • Correctly consume autolink-skip:: next (#17)

  • Find type hints via imports, fix links in partial builds (#18)

0.1.1 (2021-09-22)

  • Correctly filter out names from concatenated sources (#14)

  • Fix links in documents inside folder (#15)

0.1.0 (2021-09-22)

Initial release