Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled daily dependency update on Thursday #106

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jul 6, 2023

Update Sphinx from 4.4.0 to 7.0.1.

Changelog

7.0.1

=====================================

Dependencies
------------

* 11411: Support `Docutils 0.20`_. Patch by Adam Turner.

.. _Docutils 0.20: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04

Bugs fixed
----------

* 11418: Clean up remaining references to ``sphinx.setup_command``
following the removal of support for setuptools.
Patch by Willem Mulder.

7.0.0

=====================================

Incompatible changes
--------------------

* 11359: Remove long-deprecated aliases for ``MecabSplitter`` and
``DefaultSplitter`` in ``sphinx.search.ja``.
* 11360: Remove deprecated ``make_old_id`` functions in domain object
description classes.
* 11363: Remove the Setuptools integration (``build_sphinx`` hook in
``setup.py``).
* 11364: Remove deprecated ``sphinx.ext.napoleon.iterators`` module.
* 11365: Remove support for the ``jsdump`` format in ``sphinx.search``.
* 11366: Make ``locale`` a required argument to
``sphinx.util.i18n.format_date()``.
* 11370: Remove deprecated ``sphinx.util.stemmer`` module.
* 11371: Remove deprecated ``sphinx.pycode.ast.parse()`` function.
* 11372: Remove deprecated ``sphinx.io.read_doc()`` function.
* 11373: Removed deprecated ``sphinx.util.get_matching_files()`` function.
* 11378: Remove deprecated ``sphinx.util.docutils.is_html5_writer_available()``
function.
* 11379: Make the ``env`` argument to ``Builder`` subclasses required.
* 11380: autosummary: Always emit grouped import exceptions.
* 11381: Remove deprecated ``style`` key for HTML templates.
* 11382: Remove deprecated ``sphinx.writers.latex.LaTeXTranslator.docclasses``
attribute.
* 11383: Remove deprecated ``sphinx.builders.html.html5_ready`` and
``sphinx.builders.html.HTMLTranslator`` attributes.
* 11385: Remove support for HTML 4 output.

6.2.1

=====================================

Bugs fixed
----------

* 11355: Revert the default type of :confval:`nitpick_ignore` and
:confval:`nitpick_ignore_regex` to ``list``.

6.2.0

=====================================

Dependencies
------------

* Require Docutils 0.18.1 or greater.

Incompatible changes
--------------------

* LaTeX: removal of some internal TeX ``\dimen`` registers (not previously
publicly documented) as per 5.1.0 code comments in ``sphinx.sty``:
``\sphinxverbatimsep``, ``\sphinxverbatimborder``, ``\sphinxshadowsep``,
``\sphinxshadowsize``, and ``\sphinxshadowrule``. (refs: 11105)
* Remove ``.egg`` support from pycode ``ModuleAnalyser``; Python eggs are a
now-obsolete binary distribution format
* 11089: Remove deprecated code in ``sphinx.builders.linkcheck``.
Patch by Daniel Eades
* Remove internal-only ``sphinx.locale.setlocale``

Deprecated
----------

* 11247: Deprecate the legacy ``intersphinx_mapping`` format
* ``sphinx.util.osutil.cd`` is deprecated in favour of ``contextlib.chdir``.

Features added
--------------

* 11277: :rst:dir:`autoproperty` allows the return type to be specified as
a type comment (e.g., `` type: () -> int``). Patch by Bénédikt Tran
* 10811: Autosummary: extend ``__all__`` to imported members for template rendering
when option ``autosummary_ignore_module_all`` is set to ``False``. Patch by
Clement Pinard
* 11147: Add a ``content_offset`` parameter to ``nested_parse_with_titles()``,
allowing for correct line numbers during nested parsing.
Patch by Jeremy Maitin-Shepard
* Update to Unicode CLDR 42
* Add a ``--jobs`` synonym for ``-j``. Patch by Hugo van Kemenade
* LaTeX: a command ``\sphinxbox`` for styling text elements with a (possibly
rounded) box, optional background color and shadow, has been added.
See :ref:`sphinxbox`. (refs: 11224)
* LaTeX: add ``\sphinxstylenotetitle``, ..., ``\sphinxstylewarningtitle``, ...,
for an extra layer of mark-up freeing up ``\sphinxstrong`` for other uses.
See :ref:`latex-macros`. (refs: 11267)
* LaTeX: :dudir:`note`, :dudir:`hint`, :dudir:`important` and :dudir:`tip` can
now each be styled as the other admonitions, i.e. possibly with a background
color, individual border widths and paddings, possibly rounded corners, and
optional shadow.  See :ref:`additionalcss`. (refs: 11234)
* LaTeX: admonitions and :dudir:`topic` (and
:dudir:`contents <table-of-contents>`) directives, and not only
:rst:dir:`code-block`, support ``box-decoration-break=slice``.
* LaTeX: let rounded boxes support up to 4 distinct border-widths (refs: 11243)
* LaTeX: new options ``noteTextColor``, ``noteTeXextras`` et al.
See :ref:`additionalcss`.
* LaTeX: support elliptical corners in rounded boxes. (refs: 11254)
* 11150: Include source location in highlighting warnings, when lexing fails.
Patch by Jeremy Maitin-Shepard
* 11281: Support for :confval:`imgmath_latex` ``= 'tectonic'`` or
``= 'xelatex'``.  Patch by Dimitar Dimitrov
* 11109, 9643: Add :confval:`python_display_short_literal_types` option for
condensed rendering of ``Literal`` types.

Bugs fixed
----------

* 11079: LaTeX: figures with align attribute may disappear and strangely impact
following lists
* 11093: LaTeX: fix "multiply-defined references" PDF build warnings when one or
more reST labels directly precede an :rst:dir:`py:module` or :rst:dir:`automodule`
directive. Patch by Bénédikt Tran (picnixz)
* 11110: LaTeX: Figures go missing from latex pdf if their files have the same
base name and they use a post transform.  Patch by aaron-cooper
* LaTeX: fix potential color leak from shadow to border of rounded boxes, if
shadow color is set but border color is not
* LaTeX: fix unintended 1pt upwards vertical shift of code blocks frames
respective to contents (when using rounded corners)
* 11235: LaTeX: added ``\color`` in topic (or admonition) contents may cause color
leak to the shadow and border at a page break
* 11264: LaTeX: missing space before colon after "Voir aussi" for :rst:dir:`seealso`
directive in French
* 11268: LaTeX: longtable with left alignment breaks out of current list
indentation context in PDF.  Thanks to picnixz.
* 11274: LaTeX: external links are not properly escaped for ``\sphinxupquote``
compatibility
* 11147: Fix source file/line number info in object description content and in
other uses of ``nested_parse_with_titles``.  Patch by Jeremy Maitin-Shepard.
* 11192: Restore correct parallel search index building.
Patch by Jeremy Maitin-Shepard
* Use the new Transifex ``tx`` client

Testing
--------

* Fail testing when any Python warnings are emitted
* Migrate remaining ``unittest.TestCase`` style test functions to pytest style
* Remove tests that rely on setuptools

6.1.3

=====================================

Bugs fixed
----------

* 11116: Reverted to previous Sphinx 5 node copying method
* 11117: Reverted changes to parallel image processing from Sphinx 6.1.0
* 11119: Supress ``ValueError`` in the ``linkcheck`` builder

6.1.2

=====================================

Bugs fixed
----------

* 11101: LaTeX: ``div.topic_padding`` key of sphinxsetup documented at 5.1.0 was
implemented with name ``topic_padding``
* 11099: LaTeX: ``shadowrule`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11096: LaTeX: ``shadowsize`` key of sphinxsetup causes PDF build to crash
since Sphinx 5.1.0
* 11095: LaTeX: shadow of :dudir:`topic` and :dudir:`contents <table-of-contents>`
boxes not in page margin since Sphinx 5.1.0
* 11100: Fix copying images when running under parallel mode.

6.1.1

=====================================

Bugs fixed
----------

* 11091: Fix ``util.nodes.apply_source_workaround`` for ``literal_block`` nodes
with no source information in the node or the node's parents.

6.1.0

=====================================

Dependencies
------------

* Adopted the `Ruff`_ code linter.

.. _Ruff: https://github.com/charliermarsh/ruff

Incompatible changes
--------------------

* 10979: gettext: Removed support for pluralisation in ``get_translation``.
This was unused and complicated other changes to ``sphinx.locale``.

Deprecated
----------

* ``sphinx.util`` functions:

* Renamed ``sphinx.util.typing.stringify()``
  to ``sphinx.util.typing.stringify_annotation()``
* Moved ``sphinx.util.xmlname_checker()``
  to ``sphinx.builders.epub3._XML_NAME_PATTERN``

Moved to ``sphinx.util.display``:

* ``sphinx.util.status_iterator``
* ``sphinx.util.display_chunk``
* ``sphinx.util.SkipProgressMessage``
* ``sphinx.util.progress_message``

Moved to ``sphinx.util.http_date``:

* ``sphinx.util.epoch_to_rfc1123``
* ``sphinx.util.rfc1123_to_epoch``

Moved to ``sphinx.util.exceptions``:

* ``sphinx.util.save_traceback``
* ``sphinx.util.format_exception_cut_frames``

Features added
--------------

* Cache doctrees in the build environment during the writing phase.
* Make all writing phase tasks support parallel execution.
* 11072: Use PEP 604 (``X | Y``) display conventions for ``typing.Optional``
and ``typing.Optional`` types within the Python domain and autodoc.
* 10700: autodoc: Document ``typing.NewType()`` types as classes rather than
'data'.
* Cache doctrees between the reading and writing phases.

Bugs fixed
----------

* 10962: HTML: Fix the multi-word key name lookup table.
* Fixed support for Python 3.12 alpha 3 (changes in the ``enum`` module).
* 11069: HTML Theme: Removed outdated "shortcut" link relation keyword.
* 10952: Properly terminate parallel processes on programme interuption.
* 10988: Speed up ``TocTree.resolve()`` through more efficient copying.
* 6744: LaTeX: support for seealso directive should be via an environment
to allow styling.
* 11074: LaTeX: Can't change sphinxnote to use sphinxheavybox starting with
5.1.0

6.0.1

=====================================

Dependencies
------------

* Require Pygments 2.13 or later.

Bugs fixed
----------

* 10944: imgmath:  Fix resolving image paths for files in nested folders.

6.0.0

=====================================

Dependencies
------------

* 10468: Drop Python 3.6 support
* 10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and
Docutils 0.17 support. Patch by Adam Turner

Incompatible changes
--------------------

* 7405: Removed the jQuery and underscore.js JavaScript frameworks.

These frameworks are no longer be automatically injected into themes from
Sphinx 6.0. If you develop a theme or extension that uses the
``jQuery``, ``$``, or ``$u`` global objects, you need to update your
JavaScript to modern standards, or use the mitigation below.

The first option is to use the sphinxcontrib.jquery_ extension, which has been
developed by the Sphinx team and contributors. To use this, add
``sphinxcontrib.jquery`` to the ``extensions`` list in ``conf.py``, or call
``app.setup_extension("sphinxcontrib.jquery")`` if you develop a Sphinx theme
or extension.

The second option is to manually ensure that the frameworks are present.
To re-add jQuery and underscore.js, you will need to copy ``jquery.js`` and
``underscore.js`` from `the Sphinx repository`_ to your ``static`` directory,
and add the following to your ``layout.html``:

.. code-block:: html+jinja

  {%- block scripts %}
      <script src="{{ pathto('_static/jquery.js', resource=True) }}"></script>
      <script src="{{ pathto('_static/underscore.js', resource=True) }}"></script>
      {{ super() }}
  {%- endblock %}

.. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

Patch by Adam Turner.
* 10471, 10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See
:ref:`dev-deprecated-apis` for details. Patch by Adam Turner.
* 10901: C Domain: Remove support for parsing pre-v3 style type directives and
roles. Also remove associated configuration variables ``c_allow_pre_v3`` and
``c_warn_on_allowed_pre_v3``. Patch by Adam Turner.

Features added
--------------

* 10924: LaTeX: adopt better looking defaults for tables and code-blocks.
See :confval:`latex_table_style` and the ``pre_border-radius`` and
``pre_background-TeXcolor`` :ref:`additionalcss` for the former defaults
and how to re-enact them if desired.

Bugs fixed
----------

* 10984: LaTeX: Document :confval:`latex_additional_files` behavior for files
with ``.tex`` extension.

5.3.0

=====================================

* 10759: LaTeX: add :confval:`latex_table_style` and support the
``'booktabs'``, ``'borderless'``, and ``'colorrows'`` styles.
(thanks to Stefan Wiehler for initial pull requests 6666, 6671)
* 10840: One can cross-reference including an option value like ``:option:`--module=foobar,
``:option:`--module[=foobar] or ``:option:`--module foobar.
Patch by Martin Liska.
* 10881: autosectionlabel: Record the generated section label to the debug log.
* 10268: Correctly URI-escape image filenames.
* 10887: domains: Allow sections in all the content of all object description
directives (e.g. :rst:dir:`py:function`). Patch by Adam Turner

5.2.3

=====================================

* 10878: Fix base64 image embedding in ``sphinx.ext.imgmath``
* 10886: Add ``:nocontentsentry:`` flag and global domain table of contents
entry control option. Patch by Adam Turner

5.2.2

=====================================

* 10872: Restore link targets for autodoc modules to the top of content.
Patch by Dominic Davis-Foster.

5.2.1

=====================================

Bugs fixed
----------

* 10861: Always normalise the ``pycon3`` lexer to ``pycon``.
* Fix using ``sphinx.ext.autosummary`` with modules containing titles in the
module-level docstring.

5.2.0.post0

===========================================

* Recreated source tarballs for Debian maintainers.

5.2.0

=====================================

Dependencies
------------

* 10356: Sphinx now uses declarative metadata with ``pyproject.toml`` to
create packages, using PyPA's ``flit`` project as a build backend. Patch by
Adam Turner.

Deprecated
----------

* 10843: Support for HTML 4 output. Patch by Adam Turner.

Features added
--------------

* 10738: napoleon: Add support for docstring types using 'of', like
``type of type``. Example: ``tuple of int``.
* 10286: C++, support requires clauses not just between the template
parameter lists and the declaration.
* 10755: linkcheck: Check the source URL of raw directives that use the ``url``
option.
* 10781: Allow :rst:role:`ref` role to be used with definitions and fields.
* 10717: HTML Search: Increase priority for full title and
subtitle matches in search results
* 10718: HTML Search: Save search result score to the HTML element for debugging
* 10673: Make toctree accept 'genindex', 'modindex' and 'search' docnames
* 6316, 10804: Add domain objects to the table of contents. Patch by Adam Turner
* 6692: HTML Search: Include explicit :rst:dir:`index` directive index entries
in the search index and search results. Patch by Adam Turner
* 10816: imgmath: Allow embedding images in HTML as base64
* 10854: HTML Search: Use browser localstorage for highlight control, stop
storing highlight parameters in URL query strings. Patch by Adam Turner.

Bugs fixed
----------

* 10723: LaTeX: 5.1.0 has made the 'sphinxsetup' ``verbatimwithframe=false``
become without effect.
* 10257: C++, ensure consistent non-specialization template argument
representation.
* 10729: C++, fix parsing of certain non-type template parameter packs.
* 10715: Revert 10520: "Fix" use of sidebar classes in ``agogo.css_t``

5.1.1

=====================================

Bugs fixed
----------

* 10701: Fix ValueError in the new ``deque`` based ``sphinx.ext.napolean``
iterator implementation.
* 10702: Restore compatability with third-party builders.

5.1.0

=====================================

Dependencies
------------

* 10656: Support `Docutils 0.19`_. Patch by Adam Turner.

.. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05

Deprecated
----------

* 10467: Deprecated ``sphinx.util.stemmer`` in favour of ``snowballstemmer``.
Patch by Adam Turner.
* 9856: Deprecated ``sphinx.ext.napoleon.iterators``.

Features added
--------------

* 10444: html theme: Allow specifying multiple CSS files through the ``stylesheet``
setting in ``theme.conf`` or by setting ``html_style`` to an iterable of strings.
* 10366: std domain: Add support for emphasising placeholders in :rst:dir:`option`
directives through a new :confval:`option_emphasise_placeholders` configuration
option.
* 10439: std domain: Use the repr of some variables when displaying warnings,
making whitespace issues easier to identify.
* 10571: quickstart: Reduce content in the generated ``conf.py`` file. Patch by
Pradyun Gedam.
* 10648: LaTeX: CSS-named-alike additional :ref:`'sphinxsetup' <latexsphinxsetup>`
keys allow to configure four separate border-widths, four paddings, four
corner radii, a shadow (possibly inset), colours for border, background, shadow
for each of the code-block, topic, attention, caution, danger, error and warning
directives.
* 10655: LaTeX: Explain non-standard encoding in LatinRules.xdy
* 10599: HTML Theme: Wrap consecutive footnotes in an ``<aside>`` element when
using Docutils 0.18 or later, to allow for easier styling. This matches the
behaviour introduced in Docutils 0.19. Patch by Adam Turner.
* 10518: config: Add ``include_patterns`` as the opposite of ``exclude_patterns``.
Patch by Adam Turner.

Bugs fixed
----------

* 10594: HTML Theme: field term colons are doubled if using Docutils 0.18+
* 10596: Build failure if Docutils version is 0.18 (not 0.18.1) due
to missing ``Node.findall()``
* 10506: LaTeX: build error if highlighting inline code role in figure caption
(refs: 10251)
* 10634: Make -P (pdb) option work better with exceptions triggered from events
* 10550: py domain: Fix spurious whitespace in unparsing various operators (``+``,
``-``, ``~``, and ``**``). Patch by Adam Turner (refs: 10551).
* 10460: logging: Always show node source locations as absolute paths.
* HTML Search: HTML tags are displayed as a part of object name
* HTML Search: search snipets should not be folded
* HTML Search: Minor errors are emitted on fetching search snipets
* HTML Search: The markers for header links are shown in the search result
* 10520: HTML Theme: Fix use of sidebar classes in ``agogo.css_t``.
* 6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme.
* 10566: HTML Theme: Fix enable_search_shortcuts does not work
* 8686: LaTeX: Text can fall out of code-block at end of page and leave artifact
on next page
* 10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may
cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_
bug
* 10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted
diffs using Pygments style ``'manni'``) inherit thickness of code-block frame
* 10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node
even if it has multiple node IDs
* 10579: i18n: UnboundLocalError is raised on translating raw directive
* 9577, 10088: py domain: Fix warning for duplicate Python references when
using ``:any:`` and autodoc.
* 10548: HTML Search: fix minor summary issues.

5.0.2

=====================================

Features added
--------------

* 10523: HTML Theme: Expose the Docutils's version info tuple as a template
variable, ``docutils_version_info``. Patch by Adam Turner.

Bugs fixed
----------

* 10538: autodoc: Inherited class attribute having docstring is documented even
if :confval:`autodoc_inherit_docstring` is disabled
* 10509: autosummary: autosummary fails with a shared library
* 10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner.
* 10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+.
Patch by Adam Turner.
* 10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner.

5.0.1

=====================================

Bugs fixed
----------

* 10498: gettext: TypeError is raised when sorting warning messages if a node
has no line number. Patch by Adam Turner.
* 10493: HTML Theme: :dudir:`topic` directive is rendered incorrectly with
Docutils 0.18. Patch by Adam Turner.
* 10495: IndexError is raised for a :rst:role:`kbd` role having a separator.
Patch by Adam Turner.

5.0.0

* 9575: autodoc: The annotation of return value should not be shown when
``autodoc_typehints="description"``
* 9648: autodoc: ``*args`` and ``**kwargs`` entries are duplicated when
``autodoc_typehints="description"``
* 8180: autodoc: Docstring metadata ignored for attributes
* 10443: epub: EPUB builder can't detect the mimetype of .webp file
* 10104: gettext: Duplicated locations are shown if 3rd party extension does
not provide correct information
* 10456: py domain: ``:meta:`` fields are displayed if docstring contains two
or more meta-field
* 9096: sphinx-build: the value of progress bar for paralle build is wrong
* 10110: sphinx-build: exit code is not changed when error is raised on
builder-finished event

4.5.0

=====================================

Incompatible changes
--------------------

* 10112: extlinks: Disable hardcoded links detector by default
* 9993, 10177: std domain: Disallow to refer an inline target via
:rst:role:`ref` role

Deprecated
----------

* ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()``

Features added
--------------

* 10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring
* 10234: autosummary: Add "autosummary" CSS class to summary tables
* 10125: extlinks: Improve suggestion message for a reference having title
* 10112: extlinks: Add :confval:`extlinks_detect_hardcoded_links` to enable
hardcoded links detector feature
* 9494, 9456: html search: Add a config variable
:confval:`html_show_search_summary` to enable/disable the search summaries
* 9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:`/` as
a Quick search shortcut and :kbd:`Esc` shortcut that
removes search highlighting.
* 10107: i18n: Allow to suppress translation warnings by adding ``noqa``
comment to the tail of each translation message
* 10252: C++, support attributes on classes, unions, and enums.
* 10253: :rst:role:`pep` role now generates URLs based on `peps.python.org
<https://peps.python.org>`_

Bugs fixed
----------

* 9876: autodoc: Failed to document an imported class that is built from native
binary module
* 10133: autodoc: Crashed when mocked module is used for type annotation
* 10146: autodoc: :confval:`autodoc_default_options` does not support
``no-value`` option
* 9971: autodoc: TypeError is raised when the target object is annotated by
unhashable object
* 10205: extlinks: Failed to compile regexp on checking hardcoded links
* 10277: html search: Could not search short words (ex. "use")
* 9529: LaTeX: named auto numbered footnote (ex. ``[named]``) that is referred
multiple times was rendered to a question mark
* 9924: LaTeX: multi-line :rst:dir:`cpp:function` directive has big vertical
spacing in Latexpdf
* 10158: LaTeX: excessive whitespace since v4.4.0 for undocumented
variables/structure members
* 10175: LaTeX: named footnote reference is linked to an incorrect footnote if
the name is also used in the different document
* 10269: manpage: Failed to resolve the title of :rst:role:`ref` cross references
* 10179: i18n: suppress "rST localization" warning
* 10118: imgconverter: Unnecessary availablity check is called for remote URIs
* 10181: napoleon: attributes are displayed like class attributes for google
style docstrings when :confval:`napoleon_use_ivar` is enabled
* 10122: sphinx-build: make.bat does not check the installation of sphinx-build
command before showing help
Links

Update sphinx_rtd_theme from 1.0.0 to 1.2.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update myst_parser from 2.0.0 to 2.0.0.

Changelog

2.0.0

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

* ⬆️ UPGRADE: `markdown-it-py` to v3 (<gh-pr:773>)
* This is mainly a non-breaking change, fixing some edge cases in parsing
* See: <https://github.com/executablebooks/markdown-it-py/releases/tag/v3.0.0>
 and <https://github.com/executablebooks/mdit-py-plugins/releases/tag/v0.4.0>

* ⬆️ UPGRADE: `linkify-it-py` to v2 (<gh-pr:675>)
* Also fixes some edge cases in parsing
* See: <https://github.com/tsutsu3/linkify-it-py/blob/main/CHANGELOG.md>

* ⬆️ UPGRADE: Add support for `docutils` v0.20 (<gh-pr:775>)
* No significant changes, see <https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-20-2023-05-04>

* ⬆️ UPGRADE: Add support for `sphinx` v7, and remove v5 support (<gh-pr:776>)
* No significant changes, see <https://www.sphinx-doc.org/en/master/changes.html>

* ⬆️ UPGRADE: Remove Python 3.7 support and add testing for Python 3.11 (<gh-pr:772>)

* 👌 Improve default slug generation for heading anchors, thanks to <gh-user:Cimbali> (<gh-pr:777>)
* This change makes the slug generation closer to GitHub, in that, starting/ending whitespace will not be stripped.
 For example, `` ` a` b `c ` `` will now correctly create the slug `-a-b-c-` and not `a-b-c`

* 👌 IMPROVE: Substitution extension (<gh-pr:777>)
* Allow any value type (including dict, list, datetime) and emit a `myst.substitution` warning for errors in resolving the substitution content.

* 🧪 Introduce a gate/check GHA job, thanks to <gh-user:webknjaz> (<gh-pr:635>)

**Full Changelog**: [v1.0.0...v2.0.0](https://github.com/executablebooks/MyST-Parser/compare/v1.0.0...v2.0.0)

1.0

This release updates the code-base to fully support the [markdown-it-py](https://markdown-it-py.readthedocs.io) `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](https://github.github.com/gfm/#tables-extension-).

New Features ✨

- **Task lists** utilise the [markdown-it-py tasklists plugin](inv:markdown_itmd/plugins), and are applied to Markdown list items starting with `[ ]` or `[x]`.

markdown
- [ ] 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](docs/syntax/optional.mdtask-lists) 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`](https://github.com/executablebooks/mdit-py-plugins/pull/20).

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


See [the roles syntax guide](docs/syntax/roles-and-directives.md) for further information.

- The **`dmath_double_inline`** configuration option allows display math (i.e. `$$`) within an inline context.
See [the math syntax guide](docs/syntax/optional.mdmath-shortcuts) 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:

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


These are now correctly extracted.

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 😄

0.19.2

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

Setting the following config, for example:

python
extensions = ["myst_parser", "sphinxcontrib.mermaid"]
myst_fence_as_directive = ["mermaid"]
optional to use directive options
myst_enable_extensions = ["attrs_block"]


allows for one to write:

`markdown
{caption="My caption"}
{alt="HTML alt" align=center}
mermaid
graph LR
a --> b

`

and have interoperable rendering with tools like GitHub.

🎉 New contributors:

- 📚 Add `html_last_updated_fmt = ""` to conf.py to fix documentation footer, thanks to <gh-user:jeanas> (<gh-pr:691>)
- 📚 Fix the sphinx-design example, thanks to <gh-user:recfab> (<gh-pr:738>)

0.19.1

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

0.19.0

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

Full Changelog: [v0.18.1...v0.19.0](https://github.com/executablebooks/MyST-Parser/compare/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](https://pyscript.readthedocs.io/), <gh-pr:717>).

The code base API is also now fully documented by [sphinx-autodoc2](https://sphinx-autodoc2.readthedocs.io/), 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 suppressable warnings (<gh-pr:687>)
- Non-fatal directive parsing errors are now suppressable warnings (<gh-pr:682>)
- Most of the extended markdown syntax below is also supported

🔗 Extended Markdown links

See the [Extended Markdown links](docs/syntax/cross-referencing.md) 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:typetarget)` 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`](docs/syntax/optional.mdattributes) 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:

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


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

`markdown
{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:

markdown
{.glossary}
term name
: Definition of the term


Quote blocks can be given an attribution:

markdown
{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>

0.18.1

Full Changelog: [v0.18.0...v0.18.1](https://github.com/executablebooks/MyST-Parser/compare/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](docs/syntax/optional.md)
- **Important**: This is an experimental extension, and may change in future releases

0.18.0

Full Changelog: [v0.17.2...v0.18.0](https://github.com/executablebooks/MyST-Parser/compare/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](docs/configuration.md) 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 [](docs/docutils.md)),
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.

yaml
---
html_meta:
"description lang=en": "metadata description"
substitutions:
key1: I'm a **substitution**
---


is replaced by:

yaml
---
myst:
html_meta:
 "description lang=en": "metadata description"
substitutions:
 key1: I'm a **substitution**
---


Key PRs

- ♻️📚 Restructure code base and documentation (<gh-pr:566>)
- ⬆️ Drop Sphinx 3 and add Sphinx 5 support (<gh-pr:579>)
- 🐛 FIX: `parse_directive_text` when body followed by options (<gh-pr:580>)
- 🐛 FIX: floor table column widths to integers (<gh-pr:568>), thanks to <gh-user:Jean-Abou-Samra>!

0.17.2

Full Changelog: [v0.17.1...v0.17.2](https://github.com/executablebooks/MyST-Parser/compare/v0.17.1...v0.17.2)

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

0.17.1

Full Changelog: [v0.17.0...v0.17.1](https://github.com/executablebooks/MyST-Parser/compare/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>)

0.17.0

This release contains a number of breaking improvements.

Full Changelog: [v0.16.1...v0.17.0](https://github.com/executablebooks/MyST-Parser/compare/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](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html?highlight=anchor#auto-generated-header-anchors) 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.mdanchor)`
3. A link to an internal sphinx cross-reference, e.g. `[text](my-reference)`

an additional situation is now supported:

4. 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](docs/syntax/cross-referencing.md) 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](docs/syntax/optional.mdmath-shortcuts) 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](docs/syntax/optional.mdstrikethrough) for more information.

The `myst_gfm_only=True` configuration sets up specific configuration, to enable compliance only with [GitHub-flavored Markdown](https://github.github.com/gfm/), 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:

md
---
title: My Title with *emphasis*
---


would be equivalent to:

md
My Title with *emphasis*


See [Front matter](docs/configuration.md) for more information.

👌 Internal improvements

👌 IMPROVE: Convert nested headings to rubrics.
Headings within directives are not directly supported by sphinx, since they break the structure of the document. Previously myst-parser would emit a `myst.nested_header` warning, but still generate the heading, leading to unexpected outcomes.
Now the warning is still emitted, but also the heading is rendered as a [rubric](https://docutils.sourceforge.io/docs/ref/rst/directives.html#rubric) non-structural heading (i.e. it will not show in the ToC).

Other internal improvements primarily focused in improving support for the for "docutils-only" use, introduced in `v0.16`:

- ♻️ REFACTOR: `default_parser` -> `create_md_parser` in <gh-pr:474>
- 👌 IMPROVE: Add `bullet` attribute to `bullet_list` node in <gh-pr:465>
- 👌 IMPROVE: Use correct renderer for `state.inline_text` in <gh-pr:466>
- 👌 IMPROVE: Docutils parser settings in <gh-pr:476>
- 🐛 FIX: front-matter rendering with docutils in <gh-pr:477>
- 👌 IMPROVE: Code block highlighting in <gh-pr:478>
- 👌 IMPROVE: `note_refname` for docutils internal links in <gh-pr:481>
- 🐛 FIX: Ordered list starting number in <gh-pr:483>
- 👌 IMPROVE: Propagate enumerated list suffix in <gh-pr:484>
- 👌 IMPROVE: `DocutilsRenderer.create_highlighted_code_block` in <gh-pr:488>
- 🐛 FIX: Source line reporting for nested parsing in <gh-pr:490>
- 🔧 MAINTAIN: Implement `MockInliner.parse` in <gh-pr:504>

0.16.1

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

0.16.0

This release contains a number of exciting improvements:

Upgrade of Markdown parser

`markdown-it-py` has been upgraded to [v2.0.0](https://github.com/executablebooks/markdown-it-py/releases/tag/v2.0.0).
This upgrade brings full compliance with the [CommonMark v0.30 specification](https://spec.commonmark.org/0.30/).

Additionally, `mdit-py-plugins` has been upgraded to [v0.3.0](https://github.com/executablebooks/mdit-py-plugins/releases/tag/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:

md
(a bc   |<>*./_-+:)=

Header


Also MyST role syntax now supports unlimited length in the role name and new lines in the content.
For example, this is now valid:

md
{abc}`xy
new line`


Improvements for Docutils-only use

MyST now allows for Docutils-only use (outside of Sphinx), that allows for MyST configuration options to be set via the `docutils.conf` file, or on the command line.

On installing MyST-Parser, the following CLI-commands are made available:

- `myst-docutils-html`: converts MyST to HTML
- `myst-docutils-html5`: converts MyST to HTML5
- `myst-docutils-latex`: converts MyST to LaTeX
- `myst-docutils-xml`: converts MyST to docutils-native XML
- `myst-docutils-pseudoxml`: converts MyST to pseudo-XML (to visualise the AST structure)

You can also install the [myst-docutils](https://pypi.org/project/myst-docutils/) package from `pip`,
which includes no direct install requirements on docutils or sphinx.

See [MyST with Docutils](docs/docutils.md) for more information.

Thanks to help from <gh-user:cpitclaudel>!

Include MyST files in RST files

With `docutils>=0.17`, the `include` directive has a `parser` option.
This can be used with myst-parser to include MyST files in RST files.

md
Parse using the docutils only parser:

.. include:: include.md
:parser: myst_parser.docutils_

Parse using the sphinx parser:

.. include:: include.md
:parser: myst_parser.sphinx_


Addition of the `fieldlist` syntax extension

Field lists are mappings from field names to field bodies, based on the [reStructureText syntax](https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#field-lists):

rst
:name only:
:name: body
:name:
Multiple

Paragraphs


This should eventually allow for MyST Markdown docstrings! (see <https://github.com/executablebooks/MyST-Parser/issues/228>)

See [Field Lists syntax](docs/syntax/optional.mdfield-lists) for more information.

Improvements to table rendering

Tables with no body are now allowed, for example:

md
| abc | def |
| --- | --- |


Also cell alignment HTML classes have now been changed to: `text-left`, `text-center`, or `text-right`, for example:

md
| left | center | right |
| :--- | :----: | ----: |
| a    | b      | c     |


is converted to:

html
<table class="colwidths-auto">
<thead>
<tr>
 <th class="text-left head"><p>left</p></th>
 <th class="text-center head"><p>center</p></th>
 <th class="text-right head"><p>right</p></th>
</tr>
</thead>
<tbody>
<tr>
 <td class="text-left"><p>a</p></td>
 <td class="text-center"><p>b</p></td>
 <td class="text-right"><p>c</p></td>
</tr>
</tbody>
</table>


These classes should be supported by most sphinx HTML themes.

See [Tables syntax](docs/syntax/tables.md) for more information.

Pull Requests

- 🐛 FIX: Add mandatory attributes on `enumerated_list` by <gh-user:cpitclaudel> in <gh-pr:418>
- 📚 DOCS: Add reference to MySTyc in landing page by <gh-user:astrojuanlu> in <gh-pr:413>
- ⬆️ UPGRADE: markdown-it-py v2, mdit-py-plugins v0.3 by <gh-user:chrisjsewell> in <gh-pr:449>
- 👌 IMPROVE: Table rendering by <gh-user:chrisjsewell> in <gh-pr:450>
- 🐛 FIX: Ensure parent files are re-built if `include` file changes by <gh-user:chrisjsewell> in <gh-pr:451>
- 🐛 FIX: Convert empty directive option to `None` by <gh-user:chrisjsewell> in <gh-pr:452>
- 👌 IMPROVE: Add `\\` for hard-breaks in latex by <gh-user:chrisjsewell> in <gh-pr:453>
- 🔧 MAINTAIN: Remove empty "sphinx" extra by <gh-user:hukkin> in <gh-pr:350>
- ✨ NEW: Add `fieldlist` extension by <gh-user:chrisjsewell> in <gh-pr:455>
- ✨ NEW: Add Docutils MyST config and CLI by <gh-user:cpitclaudel> in <gh-pr:426>
- 🔧 MAINTAIN: Add publishing job for `myst-docutils` by <gh-user:chrisjsewell> in <gh-pr:456>
- 🧪 TESTS: Add for `gettext_additional_targets` by <gh-user:jpmckinney> in <gh-pr:459>

New Contributors

- <gh-user:cpitclaudel> made their first contribution in <gh-pr:418>
- <gh-user:astrojuanlu> made their first contribution in <gh-pr:413>

**Full Changelog**: <https://github.com/executablebooks/MyST-Parser/compare/v0.15.2...v0.16.0>

0.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.

0.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"]`.

0.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](docs/syntax/optional.mdmath-shortcuts) 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](docs/syntax/optional.mdauto-generated-header-anchors)).

Thanks to <gh-user:jpmckinney>!

0.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:

`markdown
{note}
Unsupported Header

`

A warning (of type `myst.nested_header`) is now emitted when this occurs.

🔧 MAINTAIN: Python 3.9 is now officially supported.

0.13.6

🐛 FIX: docutils `v0.17` compatibility

0.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](myst-warnings) for more information.

0.13.3

Minor fixes:

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

0.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:
html
<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](docs/syntax/optional.md) 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](docs/syntax/typography.md) 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>)

0.13.1

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

md
---
substitutions:
key: |
 {image} img/fun-fish.png
 :alt: fishy
 :height: 20px
 
---

An inline image: {{ key }}

0.13.0

This release makes some major updates to the optional syntaxes.
For full details see [Optional MyST Syntaxes](docs/syntax/optional.md).

🗑 Deprecations

`myst_enable_extensions = ["dollarmath", ...]` now replaces and deprecates individual enable configuration variables: `admonition_enable` -> `"colon_fence"`, `figure_enable` -> `"colon_fence"`, `dmath_enable` -> `"dollarmath"`, `amsmath` -> `"colon_fence"`, `deflist_enable` -> `"deflist"`, `html_img_enable` -> `"html_image"`.

The `colon_fence` extension (replacing `admonition_enable`) now works exactly the same as normal `  ` code fences, but using `:::` delimiters. This is helpful for directives that contain Markdown text, for example:

md
:::{admonition} The title
:class: note

This note contains *Markdown*
:::


✨ New

The `smartquotes` extension will automatically convert standard quotations to their opening/closing variants:

- `'single quotes'`: ‘single quotes’
- `"double quotes"`:  “double quotes”

The `linkify` extension will automatically identify “bare” web URLs, like `www.example.com`,  and add hyperlinks; www.example.com.
This extension requires that [linkify-it-py](https://github.com/tsutsu3/linkify-it-py) is installed.

The `replacements` extension will automatically convert some common typographic texts, such as `+-` -> `±`.

The `substitution` extension allows you to specify "substitution definitions" in either the `conf.py` (as `myst_substitutions`) and/or individual file's front-matter (front-matter takes precedence), which will then replace substitution references. For example:

md
---
substitutions:
key1: definition
---
{{ key1 }}


The substitutions are assessed as [jinja2 expressions](http://jinja.palletsprojects.com/) and includes the [Sphinx Environment](inv:sphinx#extdev/envapi) as `env`, so you can do powerful thinks like:


{{ [key1, env.docname] | join('/') }}


The `figure-md` directive has been added (replacing `enable_figure`), which parses a "Markdown friendly" figure (used with the `colon_fence` extension):

md
:::{figure-md} fig-target
:class: myclass

<img src="img/fun-fish.png" alt="fishy" class="bg-primary mb-1" width="200px">

This is a caption in **Markdown**
:::


👌 Improvements

Using the `html_image` extension, HTML images are now processed for both blocks and (now) inline.

So you can correctly do, for example:

md
I’m an inline image: <img src="img/fun-fish.png" height="20px">

| table column                              |
| ----------------------------------------- |
| <img src="img/fun-fish.png" width="20px"> |

0.12.10

🐛 FIX: allow dates to be parsed in frontmatter.
: This fixes a bug that would raise errors at parse time if non-string date objects were in front-matter YAML. See <gh-pr:253>

0.12.9

✨ NEW: Auto-generate heading anchors.
: This utilises `markdown-it-py`'s `anchors-plugin`, to generate unique anchor "slugs" for each header (up to a certain level),
and allows them to be referenced *via* a relative path, e.g. `[](./file.mdheader-anchor)`, or in the same document, e.g. `[](header-anchor)`.

Slugs are generated in the GitHub style ([see here](https://github.com/Flet/github-slugger)); lower-case text, removing punctuation, replacing spaces with `-`, enforce uniqueness *via* suffix enumeration `-1`.

It is enabled in your `conf.py` *via* `myst_heading_anchors = 2` (sets maximum heading level).

See [the documentation here](docs/syntax/optional.mdauto-generated-header-anchors).

🐛 FIX: doc reference resolution for singlehtml/latex.
: These reference resolutions are passed to the "missing-reference" event, and require the `node["refdoc"]` attribute to be available, which was missing for `[text](./path/to/file.md)` type references.

0.12.7

✨ NEW: Want to include your README.md in the documentation?
: See [including a file from outside the docs folder](howto/include-readme).

0.12.5

✨ NEW: Add Markdown figure syntax
: Setting `myst_figure_enable = True` in your sphinx `conf.py`, combines the above two extended syntaxes,
to create a fully Markdown compliant version of the `figure` directive.
See [Markdown Figures](docs/syntax/optional.mdmarkdown-figures) for details.

0.12.4

👌 IMPROVE: the mathjax extension is now only overridden if strictly necessary (to support dollar and ams math), and the override is more precise, to mitigate any unwanted side-effects

0.12.3

✨ NEW: Add definition lists.
: This addition, enabled by `myst_deflist_enable = True`, allows for "Pandoc style" definition lists to be parsed and rendered, e.g.

md
Term 1
: Definition


See the [Definition Lists documentation](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#definition-lists) for further details.

👌 IMPROVE: mathjax_config override.
: Only `mathjax_config["tex2jax"]` will now be overridden, in order to not interfere with other user configurations, such as adding TeX macros.
The configuration name has also changed from `myst_override_mathjax` to `myst_update_mathjax`.
See [Mathjax and math parsing](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#mathjax-and-math-parsing) for further details.

0.12.2

✨ NEW: Add the `eval-rst` directive

: This directive parses its contents as ReStructuredText, which integrates back into the rest of the document, e.g. for cross-referencing. See [this documentation](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#how-directives-parse-content) for further explanation.

In particular, this addition solves some outstanding user requests:

- How-to [include rST files into a Markdown file](https://myst-parser.readthedocs.io/en/latest/using/howto.html#include-rst-files-into-a-markdown-file)
- How-to [Use sphinx.ext.autodoc in Markdown files](https://myst-parser.readthedocs.io/en/latest/using/howto.html#use-sphinx-ext-autodoc-in-markdown-files)

Thanks to <gh-user:stephenroller> for the contribution 🎉

0.12.1

✨ NEW: Add `myst_commonmark_only` config option, for restricting the parser to strict CommonMark (no extensions).

0.12.0

‼️ BREAKING

If you are using math in your documents, be sure to read the updated [Math syntax guide](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#math-shortcuts)!
In particular, the Mathjax configuration is now overridden, such that LaTeX environments will only be rendered if `myst_amsmath_enable=True` is set.

The `myst_math_delimiters` option has also been removed (please open an issue if you would like brackets math parsing to be re-implemented).

In addition the `myst_html_img` option name has been changed to `myst_html_img_enable`.

Some underlying code has also been refactored, to centralise handling of configuration options (see [commit 98573b9](https://github.com/executablebooks/MyST-Parser/commit/98573b9c6e3602ab31d627b5266ae5c1ba2c9e5f)).

Improved 👌

More configuration options for math parsing (see [MyST configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options)).

0.11.2

Added ✨

- `<img src="file.png" width="200px">` tag parsing to sphinx representation, see [the image syntax guide](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#images)

Improved 👌

- `[title](link)` syntax now works with intersphinx references.
Recognised URI schemas can also be configured, see the [configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options)

0.11.1

Fix

- Correctly pin required minimum markdown-it-py version

0.11.0

Added ✨

* Special admonition directive syntax (optional):

md
:::{note}
This text is **standard** _Markdown_
:::


See [the syntax guide section](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#admonition-directives-special-syntax-optional) for details.

* Direct parsing of [amsmath](https://ctan.org/pkg/amsmath) LaTeX equations (optional).
See [the syntax guide section](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#direct-latex-math-optional) for details.

Breaking ‼️

* Sphinx configuration options are now set as separate variables, rather than a single dict.
See [MyST configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options) for details.

0.10.0

([full changelog](https://github.com/executablebooks/MyST-Parser/compare/v0.9.1...aaed58808af485c29bbbf73c5aac10697bfa08b9))

Improved 👌

* Support Sphinx version 3 in <gh-pr:197> (<gh-user:chrisjsewell>)
* Update Trove Classifiers in <gh-pr:192> (<gh-user:chrisjsewell>)
* Add functionality to use docutils specialized role in <gh-pr:189> (<gh-user:chrisjsewell>)

Contributors to this release

([GitHub contributors page for this release](https://github.com/executablebooks/MyST-Parser/graphs/contributors?from=2020-07-20&to=2020-08-07&type=c))

[AakashGfude](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3AAakashGfude+updated%3A2020-07-20..2020-08-07&type=Issues) | [asmeurer](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aasmeurer+updated%3A2020-07-20..2020-08-07&type=Issues) | [choldgraf](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acholdgraf+updated%3A2020-07-20..2020-08-07&type=Issues) | [chrisjsewell](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Achrisjsewell+updated%3A2020-07-20..2020-08-07&type=Issues) | [codecov](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acodecov+updated%3A2020-07-20..2020-08-07&type=Issues) | [webknjaz](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Awebknjaz+updated%3A2020-07-20..2020-08-07&type=Issues) | [welcome](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Awelcome+updated%3A2020-07-20..2020-08-07&type=Issues)

Past Releases

Contributors

([GitHub contributors page for these releases](https://github.com/executablebooks/MyST-Parser/graphs/contributors?from=2020-01-01&to=2020-07-20&type=c))

[akhmerov](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aakhmerov+updated%3A2020-01-01..2020-07-20&type=Issues) | [asmeurer](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aasmeurer+updated%3A2020-01-01..2020-07-20&type=Issues) | [certik](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acertik+updated%3A2020-01-01..2020-07-20&type=Issues) | [choldgraf](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acholdgraf+updated%3A2020-01-01..2

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.

None yet

1 participant