release 0.22

engelbert gruber <[email protected]> Tue, 29 Jul 2025 18:22:44 +0200
Newsgroups gmane.text.docutils.user,gmane.text.docutils.devel
Message-ID <CAHnbgBN9WXsqszjmBVUVF3omtyvz82sys2ipENAX4KemwuUFcw@mail.gmail.com>
--===============8276946866504903954==
Content-Type: multipart/alternative; boundary="0000000000001bbe95063b13d2ac"

--0000000000001bbe95063b13d2ac
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hei everyone,

after one month of rc5

the final 0.22 is in the open
sorry for the long wait

the Release consists of ... maybe see online
https://docutils.sourceforge.io/0.22/RELEASE-NOTES.html

all the best and onto next
 e

Release 0.22rc5 (2025-06-24)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

Targets generated from hyperlink references with embedded URI or alias
are no longer "explicit" but "implicit" (i.e. with the same priority as
auto-generated section targets, see `implicit hyperlink targets`__).

__ https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html
   #implicit-hyperlink-targets

Don't report an error for duplicate targets with identical refname.

Release 0.22rc4 (2025-06-17)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

Drop the "name" option of the "target-notes" directive.
(Report an error instead of silently ignoring the value.)

New alias "rst-class" for the `"class"`_ directive to improve the
compatibility with Sphinx.


Release 0.22rc3 (2025-06-10)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

New objects
  `transforms.references.CitationReferences`
     Mark citation_references as resolved if the backend
     uses a BibTeX database.

Output changes

  manpage:
     Do not drop text of internal targets.


Release 0.22rc2 (2025-05-22)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

Fix backwards-compatibility problem:
  reStructuredText section parsing no longer requires
  `parsers.rst.states.RSTStateMachine.memo.section_parents`
  (a cache introduced in Docutils 0.22rc1).

Deprecate `parsers.rst.states.Struct` (obsoleted by
`types.SimpleNamespace`).


Release 0.22rc1 (2025-05-06)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

reStructuredText:
  - Support `CSS3 units`_. This adds "ch", "rem", "vw", "vh", "vmin",
    "vmax", and "Q" to the `supported length units`__. Note that some
    output formats don't support all units.
  - New option "figname" for the `"figure"`_ directive.

  .. _CSS3 units: https://www.w3.org/TR/css-values-3/#lengths
  __ docs/ref/rst/restructuredtext.html#length-units

Document Tree / Docutils DTD
  - Allow multiple <term> elements in a `\<definition_list_item>`__
    (third-party writers may need adaption).
  - The first element in a <figure> may also be a <reference>
    (with nested "clickable" <image>).

  __ docs/ref/doctree.html#definition-list-item

Configuration changes
  - Make MathML the default math_output_ for the "html5" writer.
  - Change the default input_encoding_ from ``None`` (auto-detect) to
"utf-8".
  - Drop short options ``-i`` and ``-o``.
    Use the long equivalents ``--input-encoding`` and ``--output-encoding``=
.
    (See `command line interface`_ for the rationale.)
  - Rename configuration setting "output" to "output_path_".
  - New setting "validate_".
  - The manpage writer now recognizes the sections [writers] and
    [manpage writer] with the new setting `text_references`_.

Output changes
  LaTeX:
     Don't wrap references with custom reference_label_ in a ``\hyperref``
     command. The "hyperref" package generates hyperlinks for labels by
     default, so there is no change in the PDF
     (except for the starred forms like ``reference_label =3D \ref*``).

     Stop requiring "ifthen.sty". Add "ifthen" to the stylesheet__ setting
     or replace use of ``\ifthenelse{\isundefined...`` with the eTeX
     primitive ``\ifdefined``.

     __ docs/user/config.html#stylesheet-2

  HTML5:
     Unitless image_ size measures__ are written as <img> "width" and
     "hight" values instead of "style" rules.  The current behaviour
     is kept for values with units, so users may specify, e.g. ``:width:
     50px`` instead of ``:width: 50`` to override CSS stylesheet rules.

     __ docs/ref/doctree.html#measure

  manpage:
     Don't UPPERCASE section headings.

     Handle hyperlink references (see the text_references_ setting).

  null:
     The "null" writer output changed from None to the empty string.

     `publish_string()` now returns a `bytes` or `str` instance
     for all writers (as documented).

New objects
  `parsers.docutils_xml`
     parser for `Docutils XML`_ (e.g., the output of the "xml" writer).
     Provisional.

     Try ``docutils --parser=3Dxml test/data/multiple-term-definitions.xml`=
`
     or use the :parser: option of the `"include"`_ directive to include
     an XML file in a rST document.

  `nodes.Element.validate()`
     Raise `nodes.ValidationError` if the element does not comply with
     the `Docutils Document Model`_.
     Provisional.

  `writers.DoctreeTranslator`
     Generic Docutils document tree translator base class with
     `uri2path()` auxiliary method.
     Provisional.

Removed objects
  `core.Publisher.setup_option_parser()`
     internal, obsolete,
  `frontend.ConfigParser.get_section()`
     obsoleted by the configparser's "Mapping Protocol Access",
  `frontend.OptionParser.set_defaults_from_dict()`
     obsolete,
  `nodes.Element.set_class()`
     obsolete, append to Element['classes'] directly,
  `parsers.rst.directives.tables.CSVTable.decode_from_csv()`
     not required with Python 3,
  `parsers.rst.directives.tables.CSVTable.encode_from_csv()`
     not required with Python 3,
  `transforms.writer_aux.Compound`
     not used since Dec 2010,
  `utils.error_reporting`
     obsolete in Python 3,
  `utils.Reporter.set_conditions()`
     obsolete, set attributes via configuration settings or directly.

Removed localisations
  Mistranslations of the "admonition" directive name:
     Use "advies" (af), "varsel" (da), "warnhinweis" (de), "aviso" (es),
     "sciigo" (eo), "annonce" (fr), "avviso" (it), "advies" (nl),
     "zauwa=C5=BCenie" (pl) (introduced in Docutils 0.21)
     or the English name "admonition".

New files
  ``docutils/parsers/rst/include/html-roles.txt``
     `Standard definition file`_ for additional roles matching HTML tags.

Removed files
  ``tools/rst2odt_prepstyles.py``
     Obsoleted by `writers.odf_odt.prepstyles`.
  ``docutils/utils/roman.py``
     Obsoleted by ``docutils/utils/_roman_numerals.py``

Bugfixes and improvements (see
https://docutils.sourceforge.io/0.22/HISTORY.html).

--0000000000001bbe95063b13d2ac
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hei everyone,</div><div><br></div><div>after one mont=
h of rc5 <br></div><div><br></div><div>the final 0.22 is in the open</div><=
div>sorry for the long wait</div><div><br></div><div>the Release consists o=
f ... maybe see online <a href=3D"https://docutils.sourceforge.io/0.22/RELE=
ASE-NOTES.html">https://docutils.sourceforge.io/0.22/RELEASE-NOTES.html</a>=
</div><div><br></div><div>all the best and onto next <br></div><div>=C2=A0e=
<br></div><div><br></div>Release 0.22rc5 (2025-06-24)<br>=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><div>=
<br></div><div>Targets generated from hyperlink references with embedded UR=
I or alias<br>are no longer &quot;explicit&quot; but &quot;implicit&quot; (=
i.e. with the same priority as<br>auto-generated section targets, see `impl=
icit hyperlink targets`__).<br><br>__ <a href=3D"https://docutils.sourcefor=
ge.io/docs/ref/rst/restructuredtext.html">https://docutils.sourceforge.io/d=
ocs/ref/rst/restructuredtext.html</a><br>=C2=A0 =C2=A0#implicit-hyperlink-t=
argets<br><br>Don&#39;t report an error for duplicate targets with identica=
l refname.<br><br>Release 0.22rc4 (2025-06-17)<br>=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>Drop th=
e &quot;name&quot; option of the &quot;target-notes&quot; directive.<br>(Re=
port an error instead of silently ignoring the value.)<br><br>New alias &qu=
ot;rst-class&quot; for the `&quot;class&quot;`_ directive to improve the<br=
>compatibility with Sphinx.<br><br><br>Release 0.22rc3 (2025-06-10)<br>=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D<br><br>New objects<br>=C2=A0 `transforms.references.CitationReferenc=
es`<br>=C2=A0 =C2=A0 =C2=A0Mark citation_references as resolved if the back=
end<br>=C2=A0 =C2=A0 =C2=A0uses a BibTeX database.<br><br>Output changes<br=
><br>=C2=A0 manpage:<br>=C2=A0 =C2=A0 =C2=A0Do not drop text of internal ta=
rgets.<br><br><br>Release 0.22rc2 (2025-05-22)<br>=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>Fix bac=
kwards-compatibility problem:<br>=C2=A0 reStructuredText section parsing no=
 longer requires<br>=C2=A0 `parsers.rst.states.RSTStateMachine.memo.section=
_parents`<br>=C2=A0 (a cache introduced in Docutils=C2=A00.22rc1).<br><br>D=
eprecate `parsers.rst.states.Struct` (obsoleted by `types.SimpleNamespace`)=
.<br><br><br>Release 0.22rc1 (2025-05-06)<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>reStructuredT=
ext:<br>=C2=A0 - Support `CSS3 units`_. This adds &quot;ch&quot;, &quot;rem=
&quot;, &quot;vw&quot;, &quot;vh&quot;, &quot;vmin&quot;,<br>=C2=A0 =C2=A0 =
&quot;vmax&quot;, and &quot;Q&quot; to the `supported length units`__. Note=
 that some<br>=C2=A0 =C2=A0 output formats don&#39;t support all units.<br>=
=C2=A0 - New option &quot;figname&quot; for the `&quot;figure&quot;`_ direc=
tive.<br><br>=C2=A0 .. _CSS3 units: <a href=3D"https://www.w3.org/TR/css-va=
lues-3/#lengths">https://www.w3.org/TR/css-values-3/#lengths</a><br>=C2=A0 =
__ docs/ref/rst/restructuredtext.html#length-units<br><br>Document Tree / D=
ocutils DTD<br>=C2=A0 - Allow multiple &lt;term&gt; elements in a `\&lt;def=
inition_list_item&gt;`__<br>=C2=A0 =C2=A0 (third-party writers may need ada=
ption).<br>=C2=A0 - The first element in a &lt;figure&gt; may also be a &lt=
;reference&gt;<br>=C2=A0 =C2=A0 (with nested &quot;clickable&quot; &lt;imag=
e&gt;).<br><br>=C2=A0 __ docs/ref/doctree.html#definition-list-item<br><br>=
Configuration changes<br>=C2=A0 - Make MathML the default math_output_ for =
the &quot;html5&quot; writer.<br>=C2=A0 - Change the default input_encoding=
_ from ``None`` (auto-detect) to &quot;utf-8&quot;.<br>=C2=A0 - Drop short =
options ``-i`` and ``-o``.<br>=C2=A0 =C2=A0 Use the long equivalents ``--in=
put-encoding`` and ``--output-encoding``.<br>=C2=A0 =C2=A0 (See `command li=
ne interface`_ for the rationale.)<br>=C2=A0 - Rename configuration setting=
 &quot;output&quot; to &quot;output_path_&quot;.<br>=C2=A0 - New setting &q=
uot;validate_&quot;.<br>=C2=A0 - The manpage writer now recognizes the sect=
ions [writers] and<br>=C2=A0 =C2=A0 [manpage writer] with the new setting `=
text_references`_.<br><br>Output changes<br>=C2=A0 LaTeX:<br>=C2=A0 =C2=A0 =
=C2=A0Don&#39;t wrap references with custom reference_label_ in a ``\hyperr=
ef``<br>=C2=A0 =C2=A0 =C2=A0command. The &quot;hyperref&quot; package gener=
ates hyperlinks for labels by<br>=C2=A0 =C2=A0 =C2=A0default, so there is n=
o change in the PDF<br>=C2=A0 =C2=A0 =C2=A0(except for the starred forms li=
ke ``reference_label =3D \ref*``).<br><br>=C2=A0 =C2=A0 =C2=A0Stop requirin=
g &quot;ifthen.sty&quot;. Add &quot;ifthen&quot; to the stylesheet__ settin=
g<br>=C2=A0 =C2=A0 =C2=A0or replace use of ``\ifthenelse{\isundefined...`` =
with the eTeX<br>=C2=A0 =C2=A0 =C2=A0primitive ``\ifdefined``.<br><br>=C2=
=A0 =C2=A0 =C2=A0__ docs/user/config.html#stylesheet-2<br><br>=C2=A0 HTML5:=
<br>=C2=A0 =C2=A0 =C2=A0Unitless image_ size measures__ are written as &lt;=
img&gt; &quot;width&quot; and<br>=C2=A0 =C2=A0 =C2=A0&quot;hight&quot; valu=
es instead of &quot;style&quot; rules.=C2=A0 The current behaviour<br>=C2=
=A0 =C2=A0 =C2=A0is kept for values with units, so users may specify, e.g. =
``:width:<br>=C2=A0 =C2=A0 =C2=A050px`` instead of ``:width: 50`` to overri=
de CSS stylesheet rules.<br><br>=C2=A0 =C2=A0 =C2=A0__ docs/ref/doctree.htm=
l#measure<br><br>=C2=A0 manpage:<br>=C2=A0 =C2=A0 =C2=A0Don&#39;t UPPERCASE=
 section headings.<br><br>=C2=A0 =C2=A0 =C2=A0Handle hyperlink references (=
see the text_references_ setting).<br><br>=C2=A0 null:<br>=C2=A0 =C2=A0 =C2=
=A0The &quot;null&quot; writer output changed from None to the empty string=
.<br><br>=C2=A0 =C2=A0 =C2=A0`publish_string()` now returns a `bytes` or `s=
tr` instance<br>=C2=A0 =C2=A0 =C2=A0for all writers (as documented).<br><br=
>New objects<br>=C2=A0 `parsers.docutils_xml`<br>=C2=A0 =C2=A0 =C2=A0parser=
 for `Docutils XML`_ (e.g., the output of the &quot;xml&quot; writer).<br>=
=C2=A0 =C2=A0 =C2=A0Provisional.<br><br>=C2=A0 =C2=A0 =C2=A0Try ``docutils =
--parser=3Dxml test/data/multiple-term-definitions.xml``<br>=C2=A0 =C2=A0 =
=C2=A0or use the :parser: option of the `&quot;include&quot;`_ directive to=
 include<br>=C2=A0 =C2=A0 =C2=A0an XML file in a rST document.<br><br>=C2=
=A0 `nodes.Element.validate()`<br>=C2=A0 =C2=A0 =C2=A0Raise `nodes.Validati=
onError` if the element does not comply with<br>=C2=A0 =C2=A0 =C2=A0the `Do=
cutils Document Model`_.<br>=C2=A0 =C2=A0 =C2=A0Provisional.<br><br>=C2=A0 =
`writers.DoctreeTranslator`<br>=C2=A0 =C2=A0 =C2=A0Generic Docutils documen=
t tree translator base class with<br>=C2=A0 =C2=A0 =C2=A0`uri2path()` auxil=
iary method.<br>=C2=A0 =C2=A0 =C2=A0Provisional.<br><br>Removed objects<br>=
=C2=A0 `core.Publisher.setup_option_parser()`<br>=C2=A0 =C2=A0 =C2=A0intern=
al, obsolete,<br>=C2=A0 `frontend.ConfigParser.get_section()`<br>=C2=A0 =C2=
=A0 =C2=A0obsoleted by the configparser&#39;s &quot;Mapping Protocol Access=
&quot;,<br>=C2=A0 `frontend.OptionParser.set_defaults_from_dict()`<br>=C2=
=A0 =C2=A0 =C2=A0obsolete,<br>=C2=A0 `nodes.Element.set_class()`<br>=C2=A0 =
=C2=A0 =C2=A0obsolete, append to Element[&#39;classes&#39;] directly,<br>=
=C2=A0 `parsers.rst.directives.tables.CSVTable.decode_from_csv()`<br>=C2=A0=
 =C2=A0 =C2=A0not required with Python=C2=A03,<br>=C2=A0 `parsers.rst.direc=
tives.tables.CSVTable.encode_from_csv()`<br>=C2=A0 =C2=A0 =C2=A0not require=
d with Python=C2=A03,<br>=C2=A0 `transforms.writer_aux.Compound`<br>=C2=A0 =
=C2=A0 =C2=A0not used since Dec 2010,<br>=C2=A0 `utils.error_reporting`<br>=
=C2=A0 =C2=A0 =C2=A0obsolete in Python=C2=A03,<br>=C2=A0 `utils.Reporter.se=
t_conditions()`<br>=C2=A0 =C2=A0 =C2=A0obsolete, set attributes via configu=
ration settings or directly.<br><br>Removed localisations<br>=C2=A0 Mistran=
slations of the &quot;admonition&quot; directive name:<br>=C2=A0 =C2=A0 =C2=
=A0Use &quot;advies&quot;=C2=A0(af), &quot;varsel&quot;=C2=A0(da), &quot;wa=
rnhinweis&quot;=C2=A0(de), &quot;aviso&quot;=C2=A0(es),<br>=C2=A0 =C2=A0 =
=C2=A0&quot;sciigo&quot;=C2=A0(eo), &quot;annonce&quot;=C2=A0(fr), &quot;av=
viso&quot;=C2=A0(it), &quot;advies&quot;=C2=A0(nl),<br>=C2=A0 =C2=A0 =C2=A0=
&quot;zauwa=C5=BCenie&quot;=C2=A0(pl) (introduced in Docutils=C2=A00.21)<br=
>=C2=A0 =C2=A0 =C2=A0or the English name &quot;admonition&quot;.<br><br>New=
 files<br>=C2=A0 ``docutils/parsers/rst/include/html-roles.txt``<br>=C2=A0 =
=C2=A0 =C2=A0`Standard definition file`_ for additional roles matching HTML=
 tags.<br><br>Removed files<br>=C2=A0 ``tools/rst2odt_prepstyles.py``<br>=
=C2=A0 =C2=A0 =C2=A0Obsoleted by `writers.odf_odt.prepstyles`.<br>=C2=A0 ``=
docutils/utils/roman.py``<br>=C2=A0 =C2=A0 =C2=A0Obsoleted by ``docutils/ut=
ils/_roman_numerals.py``<br><br>Bugfixes and improvements (see=C2=A0 <a hre=
f=3D"https://docutils.sourceforge.io/0.22/HISTORY.html">https://docutils.so=
urceforge.io/0.22/HISTORY.html</a>).</div></div>

--0000000000001bbe95063b13d2ac--


--===============8276946866504903954==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8276946866504903954==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline