release 0.23

engelbert gruber <[email protected]> Wed, 27 May 2026 20:26:18 +0200
Newsgroups gmane.text.docutils.user,gmane.text.docutils.devel
Message-ID <CAHnbgBNVzwyHyW84F9wiRq2szansmNmX8+rygiLtN-LXvHSJEQ@mail.gmail.com>
hei to all,

release 0.23 is out

nothing changed since 0.23rc1
still

General:
  - Define `public API and backwards compatibility policy`_.

rST parser:
  - Problems with the "include" directive are reported as ERROR, not SEVERE.
  - The "include" directive options :start-after: and :end-before: may now
    also be used without value (standing for an empty line).
  - The highlight language of a custom role based on the `"code" role`_
    defaults to the role's name (if supported by Pygments_).
    Specifying ``:language: none`` turns off syntax highlight.

HTML5 writer:
  - If a section has several IDs, use the last one (from the first
    `explicit target`__) as self-link_.

    __ docs/ref/rst/restructuredtext.html#explicit-hyperlink-targets

LaTeX writer:
  - Do not write ``\label`` commands for section titles and other
    implicit targets if there is no matching reference in the document.
  - Support `semantic inline markup roles`_.

Configuration changes
  - New setting `legacy_ids`_.
  - The new setting `latex_footnotes`_ replaces "docutils_footnotes"
    (ignored since Docutils 0.13.1).  The command line option
    ``--docutils-footnotes`` is kept and sets latex_footnotes_ to False.

New objects
  `nodes.document.names`:
    Internal attribute mapping `reference names`_ to the
    referenced elements (or ``None`` if the name is a duplicate).
  `nodes.document.note_names()`:
    Register an element's names, check for duplicates.
  `nodes.document.set_duplicate_name()`
    Called by `nodes.document.note_names()` to handle duplicate names.
    Provisional.
  `transforms.SectionIDs`:
    Ensure all sections have an identifier_.

Removed objects
  `parsers.rst.directives.tables.CSVTable.check_requirements()`
     not required with Python 3.
  `nodes.document.set_duplicate_name_id()`
     internal method, replaced by `nodes.document.set_duplicate_name()`.