Skip to content


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.16.2 - 2021-10-04¤

Compare with 0.16.1


  • Support pymdown-extensions v9.x (0831343 by Ofek Lev and 38b22ec by Timothée Mazzucotelli).

0.16.1 - 2021-09-23¤

Compare with 0.16.0

Bug Fixes¤

  • Fix ReadTheDocs "return" template (598621b by Timothée Mazzucotelli).

0.16.0 - 2021-09-20¤

Compare with 0.15.0


Bug Fixes¤

  • Don't render empty code blocks for missing type annotations (d2e9e1e by Oleh Prypin).
  • Fix custom handler not being used (6dcf342 by Timothée Mazzucotelli). Issue #259, PR #263
  • Don't hide setup_commands errors (92418c4 by Gabriel Vîjială). PR #258

Code Refactoring¤

  • Move writing extra files to an earlier stage in the build (3890ab5 by Oleh Prypin). PR #275

0.15.2 - 2021-06-09¤

Compare with 0.15.1


  • MkDocs default schema needs to be obtained differently now (b3e122b by Oleh Prypin). PR #273
  • Compatibility with MkDocs 1.2: livereload isn't guaranteed now (36e8024 by Oleh Prypin). PR #294

0.15.1 - 2021-05-16¤

Compare with 0.15.0

Bug Fixes¤

  • Prevent error during parallel installations (fac2c71 by Timothée Mazzucotelli).


  • Support the upcoming major Jinja and MarkupSafe releases (bb4f9de by Oleh Prypin). PR #283
  • Accept a higher version of mkdocs-autorefs (c8de08e by Oleh Prypin). PR #282

0.15.0 - 2021-02-28¤

Compare with 0.14.0

Breaking Changes¤

The following items are possible breaking changes:

  • Cross-linking to arbitrary headings now requires to opt-in to the autorefs plugin, which is installed as a dependency of mkdocstrings. See Cross-references to any Markdown heading.
  • mkdocstrings now respects your configured code highlighting method, so if you are using the CodeHilite extension, the .highlight CSS class in the rendered HTML will become .codehilite. So make sure to adapt your extra CSS accordingly. Or just switch to using pymdownx.highlight, it's better supported by mkdocstrings anyway. See Syntax highlighting.
  • Most of the CSS rules that mkdocstrings used to recommend for manual addition, now become mandatory (auto-injected into the site). This shouldn't break any of your styles, but you are welcome to remove the now-redundant lines that you had copied into extra_css, similarly to this diff.


  • Nicer-looking error outputs - no tracebacks from mkdocstrings (6baf720 by Oleh Prypin). PR #230
  • Let handlers add CSS to the pages, do so for Python handler (05c7a3f by Oleh Prypin). Issue #189, PR #218
  • Allow linking to an object heading not only by its canonical identifier, but also by its possible aliases (4789950 by Oleh Prypin). PR #217

Bug Fixes¤

  • Propagate the CSS class to inline highlighting as well (c7d80e6 by Oleh Prypin). PR #245
  • Don't double-escape characters in highlighted headings (6357144 by Oleh Prypin). Issue #228, PR #241

Code Refactoring¤

  • Use the autorefs plugin from its new external location (e2d74ef by Oleh Prypin). PR #235
  • Split out Markdown extensions from handlers to handlers.rendering (7533852 by Oleh Prypin). PR #233
  • Theme-agnostic code highlighting, respecting configs (f9ea009 by Oleh Prypin). PR #202
  • Split out autorefs plugin, make it optional (fc67656 by Oleh Prypin). PR #220
  • Remove the extra wrapper div from the final doc (7fe438c by Oleh Prypin). PR #209
  • Don't re-parse the whole subdoc, expose only headings (15f84f9 by Oleh Prypin). PR #209
  • Actually exclude hidden headings from the doc (0fdb082 by Oleh Prypin). PR #209

0.14.0 - 2021-01-06¤

Compare with 0.13.6

Special thanks to Oleh @oprypin Prypin who did an amazing job (this is a euphemism) at improving mkdocstrings, fixing hard-to-fix bugs with clever solutions, implementing great new features and refactoring the code for better performance and readability! Thanks Oleh!

Bug Fixes¤

  • Fix double code tags (e84d401 by Timothée Mazzucotelli).
  • Don't mutate the original Markdown config for permalinks (8f6b163 by Oleh Prypin).
  • Preserve text immediately before an autodoc (07466fa by Oleh Prypin). PR #207
  • Remove href attributes from headings in templates (d5602ff by Oleh Prypin). PR #204
  • Don't let toc extension append its permalink twice (a154f5c by Oleh Prypin). PR #203
  • Fix undefined entity for ¶ (2c29211 by Timothée Mazzucotelli).
  • Make ids of Markdown sub-documents prefixed with the parent item id (d493d33 by Oleh Prypin). Issue #186 and #193, PR #199
  • More lenient regex for data-mkdocstrings-identifier (dcfec8e by Oleh Prypin).
  • Shift Markdown headings according to the current heading_level (13f41ae by Oleh Prypin). Issue #192, PR #195
  • Fix footnotes appearing in all following objects (af24bc2 by Oleh Prypin). Issue #186, PR #195
  • Fix cross-references from the root index page (9c9f2a0 by Oleh Prypin). Issue #184, PR #185
  • Fix incorrect argument name passed to Markdown (10ce502 by Timothée Mazzucotelli).
  • Fix error when a digit immediately follows a code tag (9b92341 by Oleh Prypin). Issue #169, PR #175
  • Detecting paths relative to template directory in logging (a50046b by Oleh Prypin). Issue #166

Code Refactoring¤

  • BlockProcessor already receives strings, use them as such (bcf7da9 by Oleh Prypin).
  • Remove some unused code (8504084 by Oleh Prypin). PR #206
  • Improve XML parsing error handling (ad86410 by Timothée Mazzucotelli).
  • Explicitly use MarkupSafe (6b9ebe7 by Oleh Prypin).
  • Split out the handler cache, expose it through the plugin (6453026 by Oleh Prypin). Issue #179, PR #191
  • Use ChainMap instead of copying dicts (c634d2c by Oleh Prypin). PR #171
  • Rename logging to loggers to avoid confusion (7a119cc by Timothée Mazzucotelli).
  • Simplify logging (409f93e by Timothée Mazzucotelli).


  • Allow specifying heading_level as a Markdown heading (10efc28 by Oleh Prypin). PR #170
  • Allow any characters in identifiers (7ede68a by Oleh Prypin). PR #174
  • Allow namespace packages for handlers (39b0465 by Timothée Mazzucotelli).
  • Add template debugging/logging (33b32c1 by Timothée Mazzucotelli).
  • Add initial support for the ReadTheDocs theme (1028115 by Timothée Mazzucotelli). Issue #107, PR #159
  • Add option to show type annotations in signatures (f94ce9b by Timothée Mazzucotelli). Issue #106


  • Accept verions of pytkdocs up to 0.10.x (see changelog).

Performance Improvements¤

  • Call update_env only once per Markdown instance (b198c74 by Oleh Prypin). PR #201
  • Disable Jinja's auto_reload to reduce disk reads (3b28c58 by Oleh Prypin). PR #200
  • Rework autorefs replacement to not re-parse the final HTML (22a9e4b by Oleh Prypin). Issue #187, PR #188

0.13.6 - 2020-09-28¤

Compare with 0.13.5

Bug Fixes¤

  • Fix rendering when clicking on hidden toc entries (2af4d31 by Timothée Mazzucotelli). Issue #60.

0.13.5 - 2020-09-28¤

Compare with 0.13.4


  • Accept pytkdocs version up to 0.9.x (changelog).

0.13.4 - 2020-09-25¤

Compare with 0.13.3

Bug Fixes¤

  • Bring back arbitrary **config to Python handler (fca7d4c by Florimond Manca). Issue #154, PR #155

0.13.3 - 2020-09-25¤

Compare with 0.13.2


  • Accept pytkdocs version up to 0.8.x (changelog).

0.13.2 - 2020-09-08¤

Compare with 0.13.1

Bug Fixes¤

  • Fix relative URLs when use_directory_urls is false (421d189 by Timothée Mazzucotelli). References: #149

0.13.1 - 2020-09-03¤

Compare with 0.13.0

Bug Fixes¤

  • Use relative links for cross-references (9c77f1f by Timothée Mazzucotelli). References: #144, #147

0.13.0 - 2020-08-21¤

Compare with 0.12.2

Bug Fixes¤

  • Accept dashes in module names (fcf79d0 by Timothée Mazzucotelli). References: #140


  • Add option to show full path of direct members only (d1b9401 by Aaron Dunmore). References: #134, #136


0.12.2 - 2020-07-24¤

Compare with 0.12.1


  • Accept pytkdocs version up to 0.7.x (changelog).

0.12.1 - 2020-07-07¤

Compare with 0.12.0

Bug Fixes¤

  • Fix HTML-escaped sequence parsing as XML (db297f1 by Timothée Mazzucotelli).
  • Allow running mkdocs from non-default interpreter (283dd7b by Jared Khan).

0.12.0 - 2020-06-14¤

Compare with 0.11.4


  • Support attributes section in Google-style docstrings (8300253 by Timothée Mazzucotelli). References: #88
  • Support examples section in Google-style docstrings (650c754 by Iago González). References: #112


  • Accept pytkdocs version up to 0.6.x (changelog).

0.11.4 - 2020-06-08¤

Compare with 0.11.3


0.11.3 - 2020-06-07¤

Compare with 0.11.2

Bug Fixes¤

  • Support custom theme directory configuration (1243cf6 by Abhishek Thakur). References: #120, #121

0.11.2 - 2020-05-20¤

Compare with 0.11.1


  • Increase pytkdocs version range to accept 0.4.0 (changelog).

0.11.1 - 2020-05-14¤

Compare with 0.11.0

Bug Fixes¤

  • Fix integration with mkdocs logging une bonne fois pour toute (3293cbf by Timothée Mazzucotelli).
  • Discard setup commands stdout (ea44cea by Timothée Mazzucotelli). References: #91
  • Use the proper python executable to start subprocesses (9fe3b39 by Reece Dunham). References: #91, #103

0.11.0 - 2020-04-23¤

Compare with 0.10.3

Bug Fixes¤

  • Properly raise on errors (respect strict mode) (2097208 by Timothée Mazzucotelli). Related issues/PRs: #86
  • Hook properly to MkDocs logging (b23daed by Timothée Mazzucotelli). Related issues/PRs: #86


  • Add setup_commands option to python handler (599f8e5 by Ross Mechanic). Related issues/PRs: #89, #90
  • Add option to allow overriding templates (7360021 by Mikaël Capelle). Related issues/PRs: #59, #82

0.10.3 - 2020-04-10¤

Compare with 0.10.2

Bug Fixes¤

  • Handle site_url not being defined (9fb4a9b by Timothée Mazzucotelli). Related issues/PRs: #77


This version increases the accepted range of versions for the pytkdocs dependency to >=0.2.0, <0.4.0. The pytkdocs project just released version 0.3.0 which:

  • adds support for complex markup in docstrings sections items descriptions
  • adds support for different indentations in docstrings sections (tabulations or less/more than 4 spaces)
  • fixes docstring parsing for arguments whose names start with *, like *args and **kwargs

0.10.2 - 2020-04-07¤

Compare with 0.10.1


This version increases the accepted range of versions for the pymdown-extensions dependency, as well as for the mkdocs-material development dependency. Indeed, both these projects recently released major versions 7 and 5 respectively. Users who wish to use these new versions will be able to. See issue #74.

0.10.1 - 2020-04-03¤

Compare with 0.10.0

Bug Fixes¤

  • Fix jinja2 error for jinja2 < 2.11 (387f970 by Timothée Mazzucotelli). Related issues/PRs: #67, #72
  • Fix missing dependency pymdown-extensions (648b99d by Timothée Mazzucotelli). Related issues/PRs: #66
  • Fix heading level of hidden toc entries (475cc62 by Timothée Mazzucotelli). Related issues/PRs: #65
  • Fix rendering signatures containing keyword_only (c6c5add by Timothée Mazzucotelli). Related issues/PRs: #68

0.10.0 - 2020-03-27¤

Compare with 0.9.1


0.9.1 - 2020-03-21¤

Compare with 0.9.0

Bug fixes¤

  • Fix cross-references when deploying to GitHub pages (36f804b).

0.9.0 - 2020-03-21¤

Compare with 0.8.0

This version is a big refactor. We will just list the new features without pointing to particular commits. The documentation rendering looks slightly different, and should be better than before. No identified breaking changes for end-users.


  • Language agnostic: we moved the code responsible for loading Python documentation into a new project, pytkdocs, and implemented a "handlers" logic, effectively allowing to support any given language. Waiting for your handlers contributions 😉!
  • Multiple themes support: handlers can offer templates for multiple mkdocs themes.
  • Better cross-references: cross-references now not only work between documented objects (between all languages, given the objects' identifiers are unique), but also for every heading of your Markdown pages.
  • Configuration options: the rendering of Python documentation can now be configured, (globally and locally thanks to the handlers system), check the docs! Also see the recommended CSS.
  • Proper logging messages: mkdocstrings now logs debug, warning and error messages, useful when troubleshooting.

Bug fixes¤

  • Various fixes and better error handling.

0.8.0 - 2020-03-04¤

Compare with 0.7.2

Breaking Changes¤

  • Be compatible with Mkdocs >= 1.1 (5a974a4). This is a breaking change as we're not compatible with versions of Mkdocs below 1.1 anymore. If you cannot upgrade Mkdocs to 1.1, pin mkdocstrings' version to 0.7.2.

0.7.2 - 2020-03-04¤

Compare with 0.7.1

Bug Fixes¤

  • Catch OSError when trying to get source lines (8e8d604).
  • Do not render signature empty sentinel (16dfd73).
  • Fix for nested classes and their attributes (7fef903).
  • Fix relative_file_path method (52715ad).
  • Wrap file path in backticks to escape it (2525f39).

0.7.1 - 2020-02-18¤

Compare with 0.7.0

Bug Fixes¤

  • Replace literal slash with os.sep for Windows compatibility (70f9af5).

0.7.0 - 2020-01-13¤

Compare with 0.6.1

Bug Fixes¤

  • Don't mark args or kwargs as required (4049d6f).
  • Filter submodules (7b11095).

Code Refactoring¤

  • Don't guess lang in generated docs (db4f60a).
  • Render at HTML step with custom markdown converter (9b5a3e1).


  • Change forward ref to ref, fix optional unions (2f0bfaa).
  • Discover package submodules (231062a).
  • Implement watched source code (hacks) (4a67953).

0.6.1 - 2020-01-02¤

Compare with 0.6.0

Bug Fixes¤

  • Break docstring discarding loop if found (5a17fec).
  • Fix discarding docstring (143f7cb).
  • Fix getting annotation from nodes (ecde72b).
  • Fix various things (affbf06).

Code Refactoring¤

  • Break as soon as we find the same attr in a parent class while trying to discard the docstring (65d7908).
  • Split Docstring.parse method to improve readability (2226e2d).

0.6.0 - 2019-12-28¤

Compare with 0.5.0

Bug Fixes¤

  • Fix GenericMeta import error on Python 3.7+ (febf2b9).

Code Refactoring¤

  • More classes. Still ugly code though :'( (f41c119).
  • Split into more modules (f1872a4).
  • Use Object subclasses (40dd106).

0.5.0 - 2019-12-22¤

Compare with 0.4.0


  • Use divs in HTML contents to ease styling (2a36a0e).

0.4.0 - 2019-12-22¤

Compare with 0.3.0


  • Parse docstrings Google-style blocks, get types from signature (5af0c7b).

0.3.0 - 2019-12-21¤

Compare with 0.2.0


  • Allow object referencing in docstrings (2dd50c0).

0.2.0 - 2019-12-15¤

Compare with 0.1.0


  • Refactor, features, etc. (111fa85).

0.1.0 - 2019-12-12¤

Compare with first commit


Back to top