Skip to content

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Apr 8, 2025

This PR contains the following updates:

Package Type Update Change Age Adoption Passing Confidence
myst-parser dependencies major >=0.13 -> >=4.0.1 age adoption passing confidence
myst_parser major >=0.13 -> >=4.0.1 age adoption passing confidence
sphinx (source) dependencies major >=7.0 -> >=8.2.3 age adoption passing confidence
sphinx (changelog) major >=7.0 -> >=8.2.3 age adoption passing confidence
sphinx-autodoc-typehints (source) dependencies major * -> >=3.1.0 age adoption passing confidence

Release Notes

ExecutableBookProject/MyST-Parser (myst-parser)

v4.0.1

🔧 Minor fix for Sphinx 8.2 compatibility (in gh-pr:1013)

v4.0.0

This release bumps the supported versions of:

  • Python to 3.10 and greater
  • Sphinx to >=7,<9
  • Docutils to >=0.19,<0.22

Additionally, footnotes are now parsed similar to the corresponding reStructuredText, in that resolution (between definitions and references) and ordering is now deferred to transforms on the doctree (in gh-pr:931).

This allows for the proper interaction with other docutils/sphinx transforms, including those that perform translations,
and logging of warnings for duplicate/unreferenced footnote definitions and also for footnote references with no definitions.

See the footnotes guide for more information.

Full Changelog: v3.0.1...v4.0.0

v3.0.1

🐛 Bug Fixes
  • Account for the final directive option having an empty value, by gh-user:chrisjsewell in gh-pr:924
  • Re-allow indented directive option blocks, by gh-user:chrisjsewell in gh-pr:925

Full Changelog: v3.0.0...v3.0.1

v3.0.0

Upgraded dependencies
  • ⬆️ Add support for Python 3.12 by gh-user:hugovk in gh-pr:848
  • ⬆️ Update docutils requirement from >=0.16,<0.21 to >=0.18,<0.22 by gh-user:chrisjsewell in gh-pr:916
New features
  • ✨ Allow for use of the line-block directive by gh-user:chrisjsewell in gh-pr:900
  • ✨ Emits sphinx include-read event by gh-user:sumezulike in gh-pr:887
Improvements
  • 👌 Nested parse attribution in attr_block by gh-user:chrisjsewell in gh-pr:831
  • 👌 Directive option parsing by gh-user:chrisjsewell in <gh-pr:796
  • 👌 Improve directive parsing warnings by gh-user:chrisjsewell in gh-pr:893
  • 👌 Allow for opening external links in new tabs (#​856) by gh-user:marjus45 in gh-pr:857
Internal
  • 🔧 Replace black, isort, pyupgrade with ruff formatter by gh-user:chrisjsewell in gh-pr:833
  • 🔧 remove redundant mypy config by gh-user:danieleades in gh-pr:866
  • 🔧 Add additional Ruff lints (and fix issues) by gh-user:danieleades in gh-pr:862
  • 🔧 mypy- disallow 'any generics' by gh-user:danieleades in gh-pr:865
  • 🔧 Fix docutils deprecation in option parsing by gh-user:agoose77 in gh-pr:842
Documentation
  • 📚 Fix a broken link in configuration.md by gh-user:zupo in gh-pr:907
  • 📚 Add linkify dependency to contributing docs. by gh-user:jhcole in gh-pr:792
  • 📚 Fix the double used in docs/syntax/math.md by gh-user:ice-tong in gh-pr:810
  • 📚 Also add linkify to pip install command in README by gh-user:n-peugnet in gh-pr:851
  • 📚 Fix the code section title in live preview by gh-user:BoboTiG in gh-pr:875
  • 📚 Fix admonition example by gh-user:72757373656c6c in gh-pr:904
  • 📚 Fix url for jupyter book gallery by gh-user:72757373656c6c in gh-pr:905
  • 📚 Update theme version by gh-user:chrisjsewell in gh-pr:918
  • 📚 Fix typo by gh-user:blakeNaccarato in gh-pr:911
  • 📚 Fix architecture typo (#​855) by gh-user:72757373656c6c in gh-pr:910

Full Changelog: v2.0.0...v3.0.0

v2.0.0

This release primarily updates core myst-parser dependencies,
with some minor changes to parsing behaviour:

Full Changelog: v1.0.0...v2.0.0

v1.0.0

🎉 MyST-Parser 1.0.0 🎉

This changes absolutely nothing in the code, or about the maintenance/release policy of this project.
But it does feel about time 😄

v0.19.1

🐛 FIX NoURI error in doc reference resolution, for texinfo builds (gh-pr:734)

v0.18.1

Full Changelog: v0.18.0...v0.18.1

  • ⬆️ UPGRADE: docutils 0.19 support in gh-pr:611
  • ✨ NEW: Add attrs_image (experimental) extension in gh-pr:620
    • e.g. ![image](image.png){#id .class width=100px}
    • See: Optional syntax section
    • Important: This is an experimental extension, and may change in future releases

v0.18.0

Full Changelog: v0.17.2...v0.18.0

This release adds support for Sphinx v5 (dropping v3), restructures the code base into modules, and also restructures the documentation, to make it easier for developers/users to follow.

It also introduces document-level configuration via the Markdown front-matter, under the myst key.
See the Local configuration section for more information.

Breaking changes

This should not be breaking, for general users of the sphinx extension (with sphinx>3),
but will be for anyone directly using the Python API, mainly just requiring changes in import module paths.

The to_docutils, to_html, to_tokens (from myst_parser/main.py) and mock_sphinx_env/parse (from myst_parser.sphinx_renderer.py) functions have been removed, since these were primarily for internal testing.
Instead, for single page builds, users should use the docutils parser API/CLI (see ),
and for testing, functionality has been moved to https://github.com/chrisjsewell/sphinx-pytest.

The top-level html_meta and substitutions front-matter keys have also been deprecated (i.e. they will still work but will emit a warning), as they now form part of the myst config, e.g.

v0.17.2

Full Changelog: v0.17.1...v0.17.2

  • ♻️ REFACTOR: Replace attrs by dataclasses for configuration (gh-pr:557)

v0.17.0

This release contains a number of breaking improvements.

Full Changelog: v0.16.1...v0.17.0

‼️ Markdown link resolution improvements

WARNING: This is a breaking change for links that rely on auto-generated anchor links. You should now manually enable auto-generated anchor links if you see errors like WARNING reference target not found.

Markdown links are of the format [text](link).
MyST-Parser looks to smartly resolve such links, by identifying if they are:

  1. A link to an external resource, e.g. [text](http://example.com)
  2. A link to another source document, e.g. [text](file.md)
    • If header-anchors are enabled, anchor links are also supported, e.g. [text](file.md#anchor)
  3. A link to an internal sphinx cross-reference, e.g. [text](my-reference)

an additional situation is now supported:

  1. A link to a source file, which is not a document, e.g. [text](file.js). This behaves similarly to the sphinx download role.

In addition, configuration to more finely tune this behaviour has been added.

  • myst_all_links_external=True, will make all links be treated as (1)
  • myst_url_schemes=("http", "https"), sets what URL schemes are treated as (1)
  • myst_ref_domains=("std", "py"), sets what Sphinx reference domains are checked, when handling (3)

See Markdown Links and Referencing for more information.

‼️ Dollarmath is now disabled by default

WARNING: This is a breaking change for dollar math. You should now manually enable dollar math (see below).

The default configuration is now myst_enable_extensions=(), instead of myst_enable_extensions=("dollarmath",).
If you are using math enclosed in $ or $$ in your documents, you should enable dollarmath explicitly.

See Dollar delimited math for more information.

⬆️ Drop Python 3.6 support

MyST-Parser now supports, and is tested against, Python 3.7 to 3.10.

✨ Add the strikethrough extension and myst_gfm_only configuration

The strikethrough extension allows text within ~~ delimiters to have a strike-through (horizontal line) placed over it.
For example, ~~strikethrough with *emphasis*~~ renders as: strikethrough with emphasis.

Important: This extension is currently only supported for HTML output.

See Strikethrough for more information.

The myst_gfm_only=True configuration sets up specific configuration, to enable compliance only with GitHub-flavored Markdown, including enabling the strikethrough, tasklist and linkify extensions, but disabling support for roles and directives.

✨ Add myst_title_to_header configuration

Setting myst_title_to_header=True, allows for a title key in the frontmatter to be used as the document title.
for example:

v0.16.1

✨ NEW: Add myst_linkify_fuzzy_links option.
When using the linkify extension, this option can be used to disable matching of links that do not contain a schema (such as http://).

v0.15.2

This is mainly a maintenance release that fixes some incompatibilities with sphinx<3.1, improvements for compatibility
with docutils=0.17, and improvements to robustness.

v0.15.1

👌 IMPROVE: MathJax compatibility with nbsphinx

nbsphinx also overrides the MathJax configuration.
For compatibility, output_area is added to the list of default processed classes, and the override warning is allowed to be suppressed with suppress_warnings = ["myst.mathjax"].

v0.15.0

Upgraded to sphinx v4 ⬆️

A principe change in this release is to updates the requirements of myst-parser from sphinx>=2,<4 to sphinx>=3,<5.

Changed MathJax handling ♻️

Instead of removing all $ processing for the whole project,
during MyST document parsing, the top-level section is now given the classes tex2jax_ignore and mathjax_ignore (turning off default MathJax processing of all HTML elements)
and MathJax is then configured to process elements with the tex2jax_process|mathjax_process|math classes.

See the math syntax guide for further information.

Set URL scheme defaults ‼️

The myst_url_schemes default is now: ("http", "https", "mailto", "ftp").
This means that only these URL will be considered as external (e.g. [](https://example.com)),
and references like [](prefix:main) will be considered as internal references.
Set myst_url_schemes = None, to revert to the previous default.

Added myst_heading_slug_func option 👌

Use this option to specify a custom function to auto-generate heading anchors (see Auto-generated header anchors).

Thanks to gh-user:jpmckinney!

v0.14.0

Upgrade to markdown-it-py v1.0 ⬆️

This release updates the code-base to fully support the markdown-it-py v1.0.0 release.
In particular for users, this update alters the parsing of tables to be consistent with the Github Flavoured Markdown (GFM) specification.

New Features ✨
  • Task lists utilise the markdown-it-py tasklists plugin, and are applied to Markdown list items starting with [ ] or [x].

    - [ ] An item that needs doing
    - [x] An item that is complete

    Add "tasklist" to the myst_enable_extensions configuration to enable.

    See the optional syntax guide for further information.

  • The sub-ref role has been added for use identical to ReST's |name| syntax.

    This allows one to access Sphinx's built-in |today|, |release| and |version| substitutions, and also introduces two new substitutions: wordcount-words and wordcount-minutes, computed by the markdown-it-py wordcount_plugin.

    > {sub-ref}`today` | {sub-ref}`wordcount-words` words | {sub-ref}`wordcount-minutes` min read

    See the roles syntax guide for further information.

  • The dmath_double_inline configuration option allows display math (i.e. $$) within an inline context.
    See the math syntax guide for further information.

Remove v0.13 deprecations ‼️

The deprecations made to extension configurations and colon fences in 0.13.0 (see below) have now been removed:

  • Configuration variables: myst_admonition_enable, myst_figure_enable, myst_dmath_enable, myst_amsmath_enable, myst_deflist_enable, myst_html_img_enable
  • :::{admonition,class} -> :::{admonition}\n:class: class
  • :::{figure} -> :::{figure-md}
Fix extraction of nested footnotes 🐛

Previously footnote definitions in block elements like lists would crash the parsing:

- [^e]: footnote definition in a block element

These are now correctly extracted.

v0.13.7

👌 IMPROVE: Add warning for nested headers:

Nested headers are not supported within most elements (this is a limitation of the docutils/sphinx document structure), and can lead to unexpected outcomes.
For example in admonitions:

```{note}

v0.13.5

  • ⬆️ UPGRADE: required markdown-it-py to v0.6.2:
    In particular, this fixes missing source line mappings for table rows and their children
  • 👌 IMPROVE: Store rawtext in AST nodes:
    We now ensure that the raw text is propagated from the Markdown tokens to the Sphinx AST.
    In particular, this is required by the gettext builder, to generate translation POT templates.
    Thanks to gh-user:jpmckinney!
  • ✨ NEW: Add warning types myst.subtype:
    All parsing warnings are assigned a type/subtype, and also the messages are appended with them.
    These warning types can be suppressed with the sphinx suppress_warnings config option.
    See How-to suppress warnings for more information.

v0.13.3

Minor fixes:

  • 🐛 FIX: front-matter parsing for bibliographic keys
  • 🐛 FIX: directive/role name translations
  • 👌 IMPROVE: Add warning for multiple footnote definitions

v0.13.2

✨ NEW: Add html_admonition extension

: By adding "html_admonition" to myst_enable_extensions, you can enable parsing of <div class="admonition"> HTML blocks to sphinx admonitions.
: This is helpful when you care about viewing the "source" Markdown, such as in Jupyter Notebooks.
: For example:

<div class="admonition note" name="html-admonition">
<p class="title">This is the **title**</p>
This is the *content*
</div>

: See the optional syntax guide for further information.

👌 IMPROVE: Footnotes

: If the label is an integer, then it will always use this integer for the rendered label (i.e. they are manually numbered).
: Add myst_footnote_transition configuration, to turn on/off transition line.
: Add footnotes class to transition <hr> in HTML.
: See the typography guide for further information.

👌 IMPROVE: substitution extension logic

: Parse inline substitutions without block rules, unless the substitution starts with a directive.

🐛 FIX: Render front-matter as field_list

: To improve use by sphinx extensions).

👌 IMPROVE: Code quality

: Add isort and mypy type checking to code base.

(thanks to contributors gh-user:akhmerov, gh-user:tfiers)

v0.13.1

👌 Directives can now be used for inline substitutions, e.g.

executablebooks/MyST-Parser (myst_parser)

v4.0.1

Compare Source

🔧 Minor fix for Sphinx 8.2 compatibility (in gh-pr:1013)

v4.0.0

Compare Source

This release bumps the supported versions of:

  • Python to 3.10 and greater
  • Sphinx to >=7,<9
  • Docutils to >=0.19,<0.22

Additionally, footnotes are now parsed similar to the corresponding reStructuredText, in that resolution (between definitions and references) and ordering is now deferred to transforms on the doctree (in gh-pr:931).

This allows for the proper interaction with other docutils/sphinx transforms, including those that perform translations,
and logging of warnings for duplicate/unreferenced footnote definitions and also for footnote references with no definitions.

See the footnotes guide for more information.

Full Changelog: v3.0.1...v4.0.0

v3.0.1

Compare Source

🐛 Bug Fixes
  • Account for the final directive option having an empty value, by gh-user:chrisjsewell in gh-pr:924
  • Re-allow indented directive option blocks, by gh-user:chrisjsewell in gh-pr:925

Full Changelog: v3.0.0...v3.0.1

v3.0.0

Compare Source

Upgraded dependencies
  • ⬆️ Add support for Python 3.12 by gh-user:hugovk in gh-pr:848
  • ⬆️ Update docutils requirement from >=0.16,<0.21 to >=0.18,<0.22 by gh-user:chrisjsewell in gh-pr:916
New features
  • ✨ Allow for use of the line-block directive by gh-user:chrisjsewell in gh-pr:900
  • ✨ Emits sphinx include-read event by gh-user:sumezulike in gh-pr:887
Improvements
  • 👌 Nested parse attribution in attr_block by gh-user:chrisjsewell in gh-pr:831
  • 👌 Directive option parsing by gh-user:chrisjsewell in <gh-pr:796
  • 👌 Improve directive parsing warnings by gh-user:chrisjsewell in gh-pr:893
  • 👌 Allow for opening external links in new tabs (#​856) by gh-user:marjus45 in gh-pr:857
Internal
  • 🔧 Replace black, isort, pyupgrade with ruff formatter by gh-user:chrisjsewell in gh-pr:833
  • 🔧 remove redundant mypy config by gh-user:danieleades in gh-pr:866
  • 🔧 Add additional Ruff lints (and fix issues) by gh-user:danieleades in gh-pr:862
  • 🔧 mypy- disallow 'any generics' by gh-user:danieleades in gh-pr:865
  • 🔧 Fix docutils deprecation in option parsing by gh-user:agoose77 in gh-pr:842
Documentation
  • 📚 Fix a broken link in configuration.md by gh-user:zupo in gh-pr:907
  • 📚 Add linkify dependency to contributing docs. by gh-user:jhcole in gh-pr:792
  • 📚 Fix the double used in docs/syntax/math.md by gh-user:ice-tong in gh-pr:810
  • 📚 Also add linkify to pip install command in README by gh-user:n-peugnet in gh-pr:851
  • 📚 Fix the code section title in live preview by gh-user:BoboTiG in gh-pr:875
  • 📚 Fix admonition example by gh-user:72757373656c6c in gh-pr:904
  • 📚 Fix url for jupyter book gallery by gh-user:72757373656c6c in gh-pr:905
  • 📚 Update theme version by gh-user:chrisjsewell in gh-pr:918
  • 📚 Fix typo by gh-user:blakeNaccarato in gh-pr:911
  • 📚 Fix architecture typo (#​855) by gh-user:72757373656c6c in gh-pr:910

Full Changelog: v2.0.0...v3.0.0

v2.0.0

Compare Source

This release primarily updates core myst-parser dependencies,
with some minor changes to parsing behaviour:

Full Changelog: v1.0.0...v2.0.0

v1.0.0

Compare Source

🎉 MyST-Parser 1.0.0 🎉

This changes absolutely nothing in the code, or about the maintenance/release policy of this project.
But it does feel about time 😄

v0.19.2

Compare Source

✨ NEW: Add myst_fence_as_directive config (gh-pr:742)

Setting the following config, for example:

extensions = ["myst_parser", "sphinxcontrib.mermaid"]
myst_fence_as_directive = ["mermaid"]

v0.19.1

Compare Source

🐛 FIX NoURI error in doc reference resolution, for texinfo builds (gh-pr:734)

v0.19.0

Compare Source

This release brings a number of exciting new features, improvements, and upgrades 🎉

Full Changelog: v0.18.1...v0.19.0

📚 Rewritten documentation

The documentation has been almost completely rewritten,
with a clearer structure, many more examples, rich hover tips, and a new live preview page (powered by pyscript, gh-pr:717).

The code base API is also now fully documented by sphinx-autodoc2, which even allows for MyST docstrings! (gh-pr:704).

⬆️ Add Sphinx 6 support, drop Sphinx 4

The code base has been updated to support sphinx v6, and is no longer tested against sphinx v4 (gh-pr:664)

📄 Extended docutils (single-page) support

The docutils parser now supports many more features, and improvements to support live previews:

  • myst_suppress_warnings option added, mirroring Sphinx, to suppress MyST warnings (gh-pr:655)
  • myst_meta_html and myst_substitutions options are now supported (gh-pr:672)
  • myst_heading_anchors option is now supported (gh-pr:678)
  • Math block labels syntax is now supported (gh-pr:668)
  • Missing directive/role errors errors are now suppressible warnings (gh-pr:687)
  • Non-fatal directive parsing errors are now suppressible warnings (gh-pr:682)
  • Most of the extended markdown syntax below is also supported
🔗 Extended Markdown links

See the Extended Markdown links section for the full guide.

You can now use standard Markdown link syntax to reference many different types of targets, in a more consistent way.

  • [text](relative/path/myfile.md) work as previously, to link to files,
    but they can also be relative to source directory: [text](/path/from/srcdir/myfile.md).
    You can also use <project:file.md>
  • <path:myfile.txt> will link specifically to a downloadable file
  • [text](#target) or <project:#target> will link (in order of priority) to any local target, local heading anchor, target in the same project, or intersphinx (inventory) target
  • [text](inv:name:domain:type#target) will link specifically to a Sphinx inventory target, or to any inventory <inv:#target>, and can even use * wildcards like <inv:*:*:*#*.target>
    • This can even be used in docutils, with the new myst_inventories config option
    • The myst-inv CLI makes it easy to find the correct inventory target

:::{tip}
It is advised (although not immediately necessary) to prefix all internal references with #.
For example, [...](my-reference), should be changed to [...](#my-reference).
:::

{} Attributes syntax

The attrs_inline and attrs_block extensions allow for common Markdown syntaxes to be extended with greater control over the output.

For example, you can now add classes, ids, and other attributes to inline code, images, and links, as well as to code blocks and directives.

  • Inline code: `a = 1`{#id .class l=python}
  • Images: ![image](image.png){#id .class width=100px}
  • Text spans: [some text]{#id .class}

A paragraph block can have attributes too:

{#id .class}
This is a paragraph with an id and class

A code fence can be given line numbers and line emphasis:

{#id .class lineno-start=1 emphasize-lines="2,3"}
```python
a = 1
b = 2
c = 3
```

A definition list can be turned into a glossary, with referenceable terms:

{.glossary}
term name
: Definition of the term

Quote blocks can be given an attribution:

{attribution="Chris Sewell"}
> My quote
👌 Miscellaneous improvements
  • Nested headings (e.g. inside directives) are now allowed in MyST and are correctly rendered in HTML (gh-pr:711)
  • The colon_fence extension now renders internal content as MyST, rather than as a code block (gh-pr:713)
  • The include directive in MyST documents now supports a :heading-offset: option, to offset the heading levels in the included document
  • The myst_heading_slug_func option now supports setting a str which points to a fully qualified function name, e.g. "module.path.func" (gh-pr:696)
  • The myst_enable_checkboxes option allows for task list checkboxes to be enabled/disabled (gh-pr:686)
Additional contributions
  • 🐛 FIX: Remove unnecessary assert in gh-pr:659, thanks to gh-user:n-peugnet
  • 🔧 ci(deps): setup dependabot (gh-pr:669), thanks to gh-user:mmorel-35
  • 🔧: Depend on typing_extensions only on Python<3.8 in gh-pr:642, thanks to gh-user:hukkin

v0.18.1

Compare Source

Full Changelog: v0.18.0...v0.18.1

  • ⬆️ UPGRADE: docutils 0.19 support in gh-pr:611
  • ✨ NEW: Add attrs_image (experimental) extension in gh-pr:620
    • e.g. ![image](image.png){#id .class width=100px}
    • See: Optional syntax section
    • Important: This is an experimental extension, and may change in future releases

v0.18.0

Compare Source

Full Changelog: v0.17.2...v0.18.0

This release adds support for Sphinx v5 (dropping v3), restructures the code base into modules, and also restructures the documentation, to make it easier for developers/users to follow.

It also introduces document-level configuration via the Markdown front-matter, under the myst key.
See the Local configuration section for more information.

Breaking changes

This should not be breaking, for general users of the sphinx extension (with sphinx>3),
but will be for anyone directly using the Python API, mainly just requiring changes in import module paths.

The to_docutils, to_html, to_tokens (from myst_parser/main.py) and mock_sphinx_env/parse (from myst_parser.sphinx_renderer.py) functions have been removed, since these were primarily for internal testing.
Instead, for single page builds, users should use the docutils parser API/CLI (see ),
and for testing, functionality has been moved to https://github.com/chrisjsewell/sphinx-pytest.

The top-level html_meta and substitutions front-matter keys have also been deprecated (i.e. they will still work but will emit a warning), as they now form part of the myst config, e.g.

v0.17.2

Compare Source

Full Changelog: v0.17.1...v0.17.2

  • ♻️ REFACTOR: Replace attrs by dataclasses for configuration (gh-pr:557)

v0.17.1

Compare Source

Full Changelog: v0.17.0...v0.17.1

  • 🐛 FIX: Heading anchor resolution for parallel builds (gh-pr:525)
  • 🔧 MAINTAIN: Move packaging from setuptools to flit (gh-pr:553)
  • 🔧 MAINTAIN: Directly specify attrs dependency (gh-pr:555)

v0.17.0

Compare Source

This release contains a number of breaking improvements.

Full Changelog: v0.16.1...v0.17.0

‼️ Markdown link resolution improvements

WARNING: This is a breaking change for links that rely on auto-generated anchor links. You should now manually enable auto-generated anchor links if you see errors like WARNING reference target not found.

Markdown links are of the format [text](link).
MyST-Parser looks to smartly resolve such links, by identifying if they are:

  1. A link to an external resource, e.g. [text](http://example.com)
  2. A link to another source document, e.g. [text](file.md)
    • If header-anchors are enabled, anchor links are also supported, e.g. [text](file.md#anchor)
  3. A link to an internal sphinx cross-reference, e.g. [text](my-reference)

an additional situation is now supported:

  1. A link to a source file, which is not a document, e.g. [text](file.js). This behaves similarly to the sphinx download role.

In addition, configuration to more finely tune this behaviour has been added.

  • myst_all_links_external=True, will make all links be treated as (1)
  • myst_url_schemes=("http", "https"), sets what URL schemes are treated as (1)
  • myst_ref_domains=("std", "py"), sets what Sphinx reference domains are checked, when handling (3)

See Markdown Links and Referencing for more information.

‼️ Dollarmath is now disabled by default

WARNING: This is a breaking change for dollar math. You should now manually enable dollar math (see below).

The default configuration is now myst_enable_extensions=(), instead of myst_enable_extensions=("dollarmath",).
If you are using math enclosed in $ or $$ in your documents, you should enable dollarmath explicitly.

See Dollar delimited math for more information.

⬆️ Drop Python 3.6 support

MyST-Parser now supports, and is tested against, Python 3.7 to 3.10.

✨ Add the strikethrough extension and myst_gfm_only configuration

The strikethrough extension allows text within ~~ delimiters to have a strike-through (horizontal line) placed over it.
For example, ~~strikethrough with *emphasis*~~ renders as: strikethrough with emphasis.

Important: This extension is currently only supported for HTML output.

See Strikethrough for more information.

The myst_gfm_only=True configuration sets up specific configuration, to enable compliance only with GitHub-flavored Markdown, including enabling the strikethrough, tasklist and linkify extensions, but disabling support for roles and directives.

✨ Add myst_title_to_header configuration

Setting myst_title_to_header=True, allows for a title key in the frontmatter to be used as the document title.
for example:

v0.16.1

Compare Source

✨ NEW: Add myst_linkify_fuzzy_links option.
When using the linkify extension, this option can be used to disable matching of links that do not contain a schema (such as http://).

v0.16.0

Compare Source

This release contains a number of exciting improvements:

Upgrade of Markdown parser

markdown-it-py has been upgraded to v2.0.0.
This upgrade brings full compliance with the CommonMark v0.30 specification.

Additionally, mdit-py-plugins has been upgraded to v0.3.0.
This improves the parsing of the MyST target syntax, to allow for spaces and additional special characters in the target name,
for example this is now valid:

(a bc   |@&#8203;<>*./_-+:)=

v0.15.2

Compare Source

This is mainly a maintenance release that fixes some incompatibilities with sphinx<3.1, improvements for compatibility
with docutils=0.17, and improvements to robustness.

v0.15.1

Compare Source

👌 IMPROVE: MathJax compatibility with nbsphinx

nbsphinx also overrides the MathJax configuration.
For compatibility, output_area is added to the list of default processed classes, and the override warning is allowed to be suppressed with suppress_warnings = ["myst.mathjax"].

v0.15.0

Compare Source

Upgraded to sphinx v4 ⬆️

A principe change in this release is to updates the requirements of myst-parser from sphinx>=2,<4 to sphinx>=3,<5.

Changed MathJax handling ♻️

Instead of removing all $ processing for the whole project,
during MyST document parsing, the top-level section is now given the classes tex2jax_ignore and mathjax_ignore (turning off default MathJax processing of all HTML elements)
and MathJax is then configured to process elements with the tex2jax_process|mathjax_process|math classes.

See the math syntax guide for further information.

Set URL scheme defaults ‼️

The myst_url_schemes default is now: ("http", "https", "mailto", "ftp").
This means that only these URL will be considered as external (e.g. [](https://example.com)),
and references like [](prefix:main) will be considered as internal references.
Set myst_url_schemes = None, to revert to the previous default.

Added myst_heading_slug_func option 👌

Use this option to specify a custom function to auto-generate heading anchors (see Auto-generated header anchors).

Thanks to gh-user:jpmckinney!

v0.14.0

Compare Source

Upgrade to markdown-it-py v1.0 ⬆️

This release updates the code-base to fully support the markdown-it-py v1.0.0 release.
In particular for users, this update alters the parsing of tables to be consistent with the Github Flavoured Markdown (GFM) specification.

New Features ✨
  • Task lists utilise the markdown-it-py tasklists plugin, and are applied to Markdown list items starting with [ ] or [x].

    - [ ] An item that needs doing
    - [x] An item that is complete

    Add "tasklist" to the myst_enable_extensions configuration to enable.

    See the optional syntax guide for further information.

  • The sub-ref role has been added for use identical to ReST's |name| syntax.

    This allows one to access Sphinx's built-in |today|, |release| and |version| substitutions, and also introduces two new substitutions: wordcount-words and wordcount-minutes, computed by the markdown-it-py wordcount_plugin.

    > {sub-ref}`today` | {sub-ref}`wordcount-words` words | {sub-ref}`wordcount-minutes` min read

    See the roles syntax guide for further information.

  • The dmath_double_inline configuration option allows display math (i.e. $$) within an inline context.
    See the math syntax guide for further information.

Remove v0.13 deprecations ‼️

The deprecations made to extension configurations and colon fences in 0.13.0 (see below) have now been removed:

  • Configuration variables: myst_admonition_enable, myst_figure_enable, myst_dmath_enable, myst_amsmath_enable, myst_deflist_enable, myst_html_img_enable
  • :::{admonition,class} -> :::{admonition}\n:class: class
  • :::{figure} -> :::{figure-md}
Fix extraction of nested footnotes 🐛

Previously footnote definitions in block elements like lists would crash the parsing:

- [^e]: footnote definition in a block element

These are now correctly extracted.

v0.13.7

Compare Source

👌 IMPROVE: Add warning for nested headers:

Nested headers are not supported within most elements (this is a limitation of the docutils/sphinx document structure), and can lead to unexpected outcomes.
For example in admonitions:

```{note}

v0.13.6

Compare Source

🐛 FIX: docutils v0.17 compatibility

v0.13.5

  • ⬆️ UPGRADE: required markdown-it-py to v0.6.2:
    In particular, this fixes missing source line mappings for table rows and their children
  • 👌 IMPROVE: Store rawtext in AST nodes:
    We now ensure that the raw text is propagated from the Markdown tokens to the Sphinx AST.
    In particular, this is required by the gettext builder, to generate translation POT templates.
    Thanks to gh-user:jpmckinney!
  • ✨ NEW: Add warning types myst.subtype:
    All parsing warnings are assigned a type/subtype, and also the messages are appended with them.
    These warning types can be suppressed with the sphinx suppress_warnings config option.
    See How-to suppress warnings for more information.

v0.13.3

Compare Source

Minor fixes:

  • 🐛 FIX: front-matter parsing for bibliographic keys
  • 🐛 FIX: directive/role name translations
  • 👌 IMPROVE: Add warning for multiple footnote definitions

v0.13.2

Compare Source

✨ NEW: Add html_admonition extension

: By adding "html_admonition" to myst_enable_extensions, you can enable parsing of <div class="admonition"> HTML blocks to sphinx admonitions.
: This is helpful when you care about viewing the "source" Markdown, such as in Jupyter Notebooks.
: For example:

<div class="admonition note" name="html-admonition">
<p class="title">This is the **title**</p>
This is the *content*
</div>

: See the optional syntax guide for further information.

👌 IMPROVE: Footnotes

: If the label is an integer, then it will always use this integer for the rendered label (i.e. they are manually numbered).
: Add myst_footnote_transition configuration, to turn on/off transition line.
: Add footnotes class to transition <hr> in HTML.
: See the typography guide for further information.

👌 IMPROVE: substitution extension logic

: Parse inline substitutions without block rules, unless the substitution starts with a directive.

🐛 FIX: Render front-matter as field_list

: To improve use by sphinx extensions).

👌 IMPROVE: Code quality

: Add isort and mypy type checking to code base.

(thanks to contributors gh-user:akhmerov, gh-user:tfiers)

v0.13.1

Compare Source

👌 Directives can now be used for inline substitutions, e.g.

sphinx-doc/sphinx (sphinx)

v8.2.3: Sphinx 8.2.3

Compare Source

Changelog: https://www.sphinx-doc.org/en/master/changes/8.2.html

v8.2.2: Sphinx 8.2.2

Compare Source

Changelog: https://www.sphinx-doc.org/en/master/changes/8.2.html

v8.2.1: Sphinx 8.2.1

Compare Source

Changelog: https://www.sphinx-doc.org/en/master/changes/8.2.html

v8.2.0: Sphinx 8.2.0

Compare Source

Changelog: https://www.sphinx-doc.org/en/master/changes/8.2.html

Dependencies

Incompatible changes

  • #​13044: Remove the internal and undocumented has_equations data
    from the MathDomain domain.
    The undocumented MathDomain.has_equations method
    now unconditionally returns True.
    These are replaced by the has_maths_elements key of the page context dict.
    Patch by Adam Turner.
  • #​13227: HTML output for sequences of keys in the kbd role
    no longer uses a <kbd class="kbd compound"> element to wrap
    the keys and separators, but places them directly in the relevant parent node.
    This means that CSS rulesets targeting kbd.compound or .kbd.compound
    will no longer have any effect.
    Patch by Adam Turner.

Deprecated

  • #​13037: Deprecate the SingleHTMLBuilder.fix_refuris method.
    Patch by James Addison.
  • #​13083, #​13330: Un-deprecate sphinx.util.import_object.
    Patch by Matthias Geier.

Features added

  • #​13173: Add a new duplicate_declaration warning type,
    with duplicate_declaration.c and duplicate_declaration.cpp subtypes.
    Patch by Julien Lecomte and Adam Turner.
  • #​11824: linkcode: Allow extensions to add support for a domain by defining
    the keys that should be present.
    Patch by Nicolas Peugnet.
  • #​13144: Add a class option to the autosummary directive.
    Patch by Tim Hoffmann.
  • #​13146: Napoleon: Unify the type preprocessing logic to allow
    Google-style docstrings to use the optional and default keywords.
    Patch by Chris Barrick.
  • #​13227: Implement the kbd role as a SphinxRole.
    Patch by Adam Turner.
  • #​13065: Enable colour by default in when running on CI.
    Patch by Adam Turner.
  • #​13230: Allow supressing warnings from the toctree directive
    when a glob pattern doesn't match any documents,
    via the new toc.empty_glob warning sub-type.
    Patch by Slawek Figiel.
  • #​9732: Add the new autodoc.mocked_object warnings sub-type.
    Patch by Cyril Roelandt.
  • #​7630, #​4824: autodoc: Use .pyi type stub files
    to auto-document native modules.
    Patch by Adam Turner, partially based on work by Allie Fitter.
  • #​12975: Enable configuration of trailing commas in multi-line signatures
    in the Python and Javascript domains, via the new
    python_trailing_comma_in_multi_line_signatures and
    javascript_trailing_comma_in_multi_line_signatures
    configuration options.
  • #​13264: Rename the math directive's nowrap option
    to no-wrap.
    Patch by Adam Turner.
  • #​13269: Added the option to disable the use of type comments in
    via the new autodoc_use_type_comments option,
    which defaults to True for backwards compatibility.
    The default will change to False in Sphinx 10.
    Patch by Adam Turner.
  • #​9732: Add the new ref.any warnings sub-type
    to allow suppressing the ambiguous 'any' cross-reference warning.
    Patch by Simão Afonso and Adam Turner.
  • #​13272: The Python and JavaScript module directives now support
    the :no-index-entry: option.
    Patch by Adam Turner.
  • #​12233: autodoc: Allow directives to use :no-index-entry:
    and include the :no-index: and :no-index-entry: options within
    autodoc_default_options.
    Patch by Jonny Saunders and Adam Turner.
  • #​13172: Add support for short signatures in autosummary.
    Patch by Tim Hoffmann.
  • #​13271: Change the signature prefix for abstract methods
    in the Python domain to abstractmethod from abstract.
    Patch by Adam Turner.
  • [#​13271](https://redirect.github.com/sphinx-doc/s

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor Author

renovate bot commented Apr 8, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pixi.lock
ExecError: Command failed: pixi lock --no-progress --color=never --quiet
Error:   × failed to solve the conda requirements of 'backends' 'linux-64'
  ╰─▶ Cannot solve the request because of: The following packages are
      incompatible
      ├─ python ~=3.10.0 cannot be installed because there are no viable
      options:
      │  ├─ python 3.10.16, which conflicts with the versions reported above.
      │  ├─ python 3.10.16, which conflicts with the versions reported above.
      │  ├─ python 3.10.16, which conflicts with the versions reported above.
      │  ├─ python 3.10.15, which conflicts with the versions reported above.
      │  ├─ python 3.10.15, which conflicts with the versions reported above.
      │  ├─ python 3.10.15, which conflicts with the versions reported above.
      │  ├─ python 3.10.14, which conflicts with the versions reported above.
      │  ├─ python 3.10.13, which conflicts with the versions reported above.
      │  ├─ python 3.10.13, which conflicts with the versions reported above.
      │  ├─ python 3.10.12, which conflicts with the versions reported above.
      │  ├─ python 3.10.11, which conflicts with the versions reported above.
      │  ├─ python 3.10.10, which conflicts with the versions reported above.
      │  ├─ python 3.10.9, which conflicts with the versions reported above.
      │  ├─ python 3.10.8, which conflicts with the versions reported above.
      │  ├─ python 3.10.8, which conflicts with the versions reported above.
      │  ├─ python 3.10.7, which conflicts with the versions reported above.
      │  ├─ python 3.10.7, which conflicts with the versions reported above.
      │  ├─ python 3.10.6, which conflicts with the versions reported above.
      │  ├─ python 3.10.6, which conflicts with the versions reported above.
      │  ├─ python 3.10.5, which conflicts with the versions reported above.
      │  ├─ python 3.10.5, which conflicts with the versions reported above.
      │  ├─ python 3.10.4, which conflicts with the versions reported above.
      │  ├─ python 3.10.4, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.2, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.1, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  ├─ python 3.10.0, which conflicts with the versions reported above.
      │  └─ python 3.10.8 would require
      │     └─ graalpy >=23.0.0,<23.0.1.0a0, which cannot be installed because
      there are no viable options:
      │        └─ graalpy 23.0.0 would constrain
      │           └─ python ==3.10.8 0_native230_graalpy, which conflicts with
      any installable versions previously reported
      └─ sphinx >=8.2.3 cannot be installed because there are no viable
      options:
         └─ sphinx 8.2.3 would require
            └─ python >=3.11, which cannot be installed because there are no
      viable options:
               ├─ python 3.13.0 | 3.13.0 | 3.13.1 | 3.13.1 | 3.13.1 | 3.13.1 |
      3.13.1 | 3.13.2 | 3.13.2 would require
               │  └─ python_abi 3.13.* *_cp313, which cannot be installed
      because there are no viable options:
               │     └─ python_abi 3.13 | 3.13 | 3.13 would constrain
               │        └─ python 3.13.* *_cpython, which conflicts with any
      installable versions previously reported
               ├─ python 3.12.9, which conflicts with the versions reported
      above.
               ├─ python 3.12.9, which conflicts with the versions reported
      above.
               ├─ python 3.12.8, which conflicts with the versions reported
      above.
               ├─ python 3.12.7, which conflicts with the versions reported
      above.
               ├─ python 3.12.6, which conflicts with the versions reported
      above.
               ├─ python 3.12.6, which conflicts with the versions reported
      above.
               ├─ python 3.12.6, which conflicts with the versions reported
      above.
               ├─ python 3.12.5, which conflicts with the versions reported
      above.
               ├─ python 3.12.4, which conflicts with the versions reported
      above.
               ├─ python 3.12.3, which conflicts with the versions reported
      above.
               ├─ python 3.12.2, which conflicts with the versions reported
      above.
               ├─ python 3.12.1, which conflicts with the versions reported
      above.
               ├─ python 3.12.1, which conflicts with the versions reported
      above.
               ├─ python 3.12.0, which conflicts with the versions reported
      above.
               ├─ python 3.11.11, which conflicts with the versions reported
      above.
               ├─ python 3.11.11, which conflicts with the versions reported
      above.
               ├─ python 3.11.10, which conflicts with the versions reported
      above.
               ├─ python 3.11.10, which conflicts with the versions reported
      above.
               ├─ python 3.11.10, which conflicts with the versions reported
      above.
               ├─ python 3.11.10, which conflicts with the versions reported
      above.
               ├─ python 3.11.9, which conflicts with the versions reported
      above.
               ├─ python 3.11.8, which conflicts with the versions reported
      above.
               ├─ python 3.11.7, which conflicts with the versions reported
      above.
               ├─ python 3.11.7, which conflicts with the versions reported
      above.
               ├─ python 3.11.6, which conflicts with the versions reported
      above.
               ├─ python 3.11.5, which conflicts with the versions reported
      above.
               ├─ python 3.11.4, which conflicts with the versions reported
      above.
               ├─ python 3.11.3, which conflicts with the versions reported
      above.
               ├─ python 3.11.2, which conflicts with the versions reported
      above.
               ├─ python 3.11.1, which conflicts with the versions reported
      above.
               ├─ python 3.11.0, which conflicts with the versions reported
      above.
               ├─ python 3.11.0, which conflicts with the versions reported
      above.
               ├─ python 3.11.0, which conflicts with the versions reported
      above.
               ├─ python 3.11.0, which conflicts with the versions reported
      above.
               └─ python 3.13.0 | 3.13.0 | 3.13.1 | 3.13.1 | 3.13.1 | 3.13.1 |
      3.13.1 | 3.13.2 | 3.13.2 would require
                  └─ python_abi 3.13.* *_cp313t, which cannot be installed
      because there are no viable options:
                     └─ python_abi 3.13 | 3.13 | 3.13 would constrain
                        └─ python 3.13.* *_cp313t, which conflicts with any
      installable versions previously reported
      


@lucascolley lucascolley closed this Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant