specify sdist content
[docutils.git] / docutils / RELEASE-NOTES.txt
blob85637378fa89fc52e8f546fc8ede6e6ff0dc60fe
1 .. include:: docs/header0.txt
3 ========================
4  Docutils Release Notes
5 ========================
7 :Contact: grubert@users.sourceforge.net
8 :Maintainer: docutils-develop@lists.sourceforge.net
9 :Date: $Date$
10 :Revision: $Revision$
11 :Web site: https://docutils.sourceforge.io/
12 :Copyright: This document has been placed in the public domain.
15 This document summarizes the major changes in previous and upcoming releases.
16 For a more detailed list of changes, please see the Docutils `HISTORY`_.
18 .. contents::
20 Future changes
21 ==============
23 Command line interface
24 ----------------------
26 * The _`command-line usage pattern` will change:
28   .. code:: diff
30        - COMMAND [OPTIONS] [SOURCE [DESTINATION]]
31        + COMMAND [OPTIONS] [SOURCE [SOURCE2 [...]]] [>DESTINATION]
33   * Remove short options ``-i`` and ``-o`` in Docutils 0.22.
34     Use the long equivalents ``--input-encoding`` and ``--output-encoding``.
36   * Stop accepting the DESTINATION positional argument in Docutils 1.0.
37     Use output redirection or the option ``--output=DESTINATION``
38     (available since Docutils 0.20).
40   * Accept more than one source document and the short option
41     ``-o`` for ``--output`` in Docutils 2.0
43   For the rationale, see https://clig.dev/#arguments-and-flags.
45 .. _entry points:
46     https://packaging.python.org/en/latest/specifications/entry-points/
49 Document Tree / Docutils DTD
50 ----------------------------
52 * Do not lowercase reference names in the `refname attribute`_
53   (matching hyperlinks, footnotes, and citations remains case insensitive),
54   and drop the ``name`` attribute from <reference> nodes
55   in Docutils 1.0.
57 .. _refname attribute: docs/ref/doctree.html#refname
59 `Input encoding`_
60 -----------------
62 * Change the default input encoding from ``None`` (auto-detect) to
63   "utf-8" in Docutils 0.22.
65 * Remove the input encoding auto-detection code in Docutils 1.0 or later.
67 Writers
68 -------
70 * The `default HTML writer`__  will change in Docutils 2.0:
72   The rst2html_ front end and ``get_writer_by_name('html')`` select
73   "html4css1" now and will select "html5" in Docutils 2.0 and later.
75   - Use rst2html4_, ``docutils --writer=html4``, or
76     ``get_writer_by_name('html4')`` if you depend on stability of the
77     generated HTML code, e.g. because you use a custom style sheet or
78     post-processing that may break otherwise.
79   - Use rst2html5_, ``docutils`` or ``get_writer_by_name('html5')``
80     if you want a HTML5 document.
82   __ docs/user/html.html#html
84 * "html5" writer:
86   - Move attribution behind the blockquote to comply with the `"living
87     standard"`__. (HTML5__ allows <cite> elements inside a blockquote.)
89     __ https://html.spec.whatwg.org/#the-blockquote-element
90     __ https://www.w3.org/TR/2014/REC-html5-20141028/grouping-content.html
91        #the-blockquote-element
93   - Change the default value for math_output_ to "MathML"
94     in Docutils 0.22.
96   - Unitless image_ :width: and :hight: values and dimensions
97     read from the image due to a :scale: option will be written as
98     "width" and "hight" attributes instead of "style" rules to allow
99     specification of the aspect ratio to `prevent jank when loading
100     images`__ without overwriting an image size set in a CSS stylesheet
101     in Docutils 0.22 (cf.  `feature-requests:102`__).
102     The current behaviour is kept for dimensions with value, so
103     users may specify, e.g. ``:width: 50px`` instead of ``:width: 50``
104     to override CSS stylesheet rules.
106     __ https://developer.mozilla.org/en-US/docs/Learn/Performance/Multimedia
107        #rendering_strategy_preventing_jank_when_loading_images
108     __ https://sourceforge.net/p/docutils/feature-requests/102/
110   - Change the default value of the initial_header_level_ setting to None
111     (<h2> if there is a document title, else <h1>) in Docutils 1.0.
113   - Remove option ``--embed-images`` (obsoleted by "image_loading_")
114     in Docutils 2.0.
116 * "latex2e" writer:
118   - Change default of use_latex_citations_ setting to True
119     in Docutils 1.0.
121   - Change default of legacy_column_widths_ setting to False
122     in Docutils 1.0.
124   - Remove ``use_verbatim_when_possible`` setting
125     (use literal_block_env_: verbatim) in Docutils 2.0.
127   - Don't wrap references with custom reference-label_ in
128     a ``\hyperref`` command in Docutils 0.22.
129     Specify, e.g., "ref" instead of "ref*" to keep generating hyperlinks.
131     .. _reference-label: docs/user/config.html#reference-label
133 * "null" writer: output will change to the empty string
134   in Docutils 0.22.
136 * "manpage" writer:
138   - No more changing case in to uppercase, leave it to the source.
141 Misc
142 ----
144 * Document tree:
145   Allow multiple <term> elements in a <definition_list_item>
146   in Docutils 0.22 (cf. `feature-requests:60`__).
147   Third-party writers may need adaption.
149   __ https://sourceforge.net/p/docutils/feature-requests/60/
151 * Remove `parsers.rst.directives.CSVTable.HeaderDialect`
152   in Docutils 0.22.
154 * Remove the "rawsource" argument from `nodes.Text.__init__()`
155   in Docutils 2.0.
157 * Drop support for `old-format configuration files`_ in Docutils 2.0.
159 * Remove the ``--html-writer`` option of the `buildhtml.py`_ application
160   (obsoleted by the `"writer" setting`_ since Docutils 0.18)
161   in Docutils 2.0.
163 * Revise the `String I/O`__ interface used by the `publish_string()`
164   and `publish_from_doctree()` publisher convenience functions.
165   (In Python 3, name and behaviour no longer match.)
167   __ docs/api/publisher.html#string-i-o
169 * Move math format conversion from docutils/utils/math (called from
170   docutils/writers/_html_base.py) to a transform__.
172   __ docs/ref/transforms.html
174 * Remove mistranslated localizations of the "admonition" directive name in
175   Docutils 0.22.
177   Use the English term, matching translations introduced in Docutils 0.21,
178   or specific admonitions instead of "aanmaning" (nl),
179   "admonition" (fr), "ammonizione" (it), "ermahnung" (de),
180   "exhortación" (es), "formaning" (da), "sciigo" (eo),
181   "upomnienie" (pl), "vermaning" (af),
182   to avoid errors in future conversions.
184 .. _front end tools: docs/user/tools.html
185 .. _input_encoding: docs/user/config.html#input-encoding
186 .. _math_output: docs/user/config.html#math-output
187 .. _UTF-8 mode: https://docs.python.org/3/library/os.html#utf8-mode
188 .. _image_loading: docs/user/config.html#image-loading
189 .. _old-format configuration files:
190    docs/user/config.html#old-format-configuration-files
191 .. _rst2html.py:
192 .. _rst2html: docs/user/tools.html#rst2html
193 .. _rst2html4: docs/user/tools.html#rst2html4
194 .. _rst2html5: docs/user/tools.html#rst2html5
195 .. _reference name: docs/ref/rst/restructuredtext.html#reference-names
196 .. _literal_block_env: docs/user/config.html#literal-block-env
197 .. _use_latex_citations: docs/user/config.html#use-latex-citations
198 .. _buildhtml.py: docs/user/tools.html#buildhtml-py
201 Release 0.21 (2024-04-09)
202 =========================
204 * General:
206   - Drop support for Python 3.7 and 3.8.
208   - Provide ``rst2*`` "console_scripts" `entry points`_
209     (without the ``.py`` extension) instead of installing the
210     ``rst2*.py`` `front end tools`_ in the binary PATH. [#]_
212     Exceptions: ``rstpep2html.py`` and ``rst2odt_prepstyles.py``:
214     - Use ``docutils --reader=pep --writer=pep_html`` for a PEP preview. [#]_
215     - Use ``python -m docutils.writers.odf_odt.prepstyles``
216       to `strip the page size`__ from an ODT writer stylesheet.
218     __ docs/user/odt.html#page-size
220   .. [#] Some Linux distributions already use the short names.
221   .. [#] The final rendering is done by a Sphinx-based build system
222          (cf. :PEP:`676`).
224 * reStructuredText:
226   - Use the same CSV format for the ``:header:`` option and the main data
227     of the "csv-table_" directive.
229   - New option "loading" for the `"image" directive`_.
230     Sets the new attribute loading__ of the <image> doctree element.
232   __ docs/ref/doctree.html#loading
234 * Configuration changes:
236   - New configuration setting root_prefix_.
237     Configurable root directory for included files.
239   - New configuration setting sources_ for the "buildhtml.py" application.
241   - Simpler and more secure `input encoding`_ default behaviour:
243     Do not use the locale encoding as fallback if Python is started in
244     `UTF-8 mode`_. Stop using "latin1" as second fallback.
246     Remove BOM (U+FEFF ZWNBSP at start of data) only if the `input_encoding`_
247     configuration setting is None, '', 'utf-8-sig', 'utf-16', or 'utf-32'.
248     Do not remove other ZWNBSPs.
250 * Output changes:
252   HTML5:
253     Stop setting the "footnote-reference" class value for footnote
254     references. Use the CSS selector ``[role="doc-noteref"]``
255     (works since Docutils 0.18, see minimal.css for examples).
257     Fix MathML rendering problems in Chrome/Chromium based browsers.
259     Embed SVG images as ``<svg>`` instead of data-URI.
261   manpage:
262     Use .EE/.EX macros for literal blocks.
264     Render URI references (do not use .UR/.UE).
266     Use box option for tables.
268 * Removed objects:
270   `docutils.nodes.reprunicode`, `docutils.nodes.ensure_str()`
271     Python 2 compatibility hacks
272   `docutils.utils.Reporter.set_conditions()`
273     obsolete
274   `docutils.core.Publisher.setup_option_parser()`
275     internal, obsolete
277 * New files:
279   ``docutils/writers/html5_polyglot/italic-field-names.css``
280     Alternative style for Docutils field-lists.
282 * Removed files:
284   ``install.py``, ``setup.py``
285     Metadata is now stored in ``pyproject.toml``,
286     supported by pip_ since version 19.0 (2019-01-22).
287     See README__ for installation alternatives.
289   __ README.html#installation
291 * Bugfixes and improvements (see HISTORY_).
293 .. _input encoding: docs/api/publisher.html#encodings
294 .. _csv-table: docs/ref/rst/directives.html#csv-table
295 .. _"image" directive: docs/ref/rst/directives.html#image
296 .. _root_prefix: docs/user/config.html#root-prefix
297 .. _sources: docs/user/config.html#sources
300 Release 0.20.1 (2023-05-17)
301 ===========================
303 Bugfix release. See HISTORY_ for details.
306 Release 0.20 (2023-05-04)
307 =========================
309 .. Note::
311    Docutils 0.20 is the last version supporting Python 3.7 and 3.8.
313 * General
315   - Support Python 3.11 (patch #198 by Hugo van Kemenade).
317 * Output changes:
319   HTML5:
320     Use dpub-ARIA role "doc-footnote" (instead of ARIA role "note")
321     for footnotes.
323   LaTeX:
324     Do not load the `inputenc` package in UTF-8 encoded LaTeX sources.
325     (UTF-8 is the default encoding for LaTeX2e since 2018).
327 * Configuration changes:
329   - Settings in the [latex2e writer] configuration file section
330     are now ignored by the "xetex" writer.
331     Place common settings in section `[latex writers]`_.
333   - New command line setting output_. Obsoletes the ``<destination>``
334     positional argument (cf. `future changes`__).
336     __ `command-line usage pattern`_
338 * `utils.find_file_in_dirs()` now returns a POSIX path also on Windows;
339   `utils.get_stylesheet_list()` no longer converts ``\`` to ``/``.
341 * docutils/languages/
342   docutils/parsers/rst/languages/
344   - Support Ukrainian. Patch by Dmytro Kazanzhy.
346 * test/coverage.sh
348   - Removed. Use the coverage.py_ project instead,
349     ``coverage run test/alltests.py`` and ``coverage report``.
351 * tools/
353   - Moved ``quicktest.py`` to ``tools/dev/``.
355 * Bugfixes and improvements (see HISTORY_).
357 .. _[latex writers]: docs/user/config.html#latex-writers
358 .. _output: docs/user/config.html#output
359 .. _coverage.py: https://pypi.org/project/coverage/
362 Release 0.19 (2022-07-05)
363 =========================
365 (Release 0.19b1 (2022-06-21))
367 * Drop support for Python 2.7, 3.5, and 3.6.
369 * Output changes:
371   HTML5:
372     Wrap groups of footnotes in an ``<aside>`` for easier styling.
374     The CSS rule ``.footnote-list { display: contents; }`` can be used to
375     restore the behaviour of custom CSS styles.
377 * After package installation, the CLI commands ``python -m docutils`` and
378   ``docutils`` start the `generic command line front end tool`_.
380 * Support parsing "Markdown" input with 3rd party parsers
381   myst_, pycmark_, or recommonmark_.
383 * The default values for the "pep-references", "rfc-base-url",
384   and "python-home" `configuration settings`_ now use the "https:" scheme.
385   The PEP-writer template's header is updated to fix links and
386   resemble the header of official PEPs.
388 * Various bugfixes and improvements (see HISTORY_).
390 .. _generic command line front end tool:
391     docs/user/tools.html#generic-command-line-front-end
392 .. _myst: https://pypi.org/project/myst-docutils
393 .. _pycmark: https://pypi.org/project/pycmark/
394 .. _recommonmark: https://pypi.org/project/recommonmark/
395 .. _configuration settings: docs/user/config.html
398 Release 0.18.1 (2021-12-23)
399 ===========================
401 .. Note::
403    Docutils 0.18.1 is the last version supporting Python 2.7, 3.5, and 3.6.
405 * ``nodes.Node.traverse()`` returns a list again to restore backwards
406   compatibility (fixes bug #431).
407   Use ``nodes.Node.findall()`` to get an iterator.
409 * re-add module ``parsers.rst.directives.html``
410   (stub, emits deprecation warning and loads
411   "Meta" directive from its new place at ``parsers.rst.directives.misc``.)
413 * Small bugfixes (see HISTORY_).
416 Release 0.18 (2021-10-26)
417 =========================
419 * Output changes:
421   Identifiers:
422     - During `identifier normalization`_, leading number and hyphen
423       characters are no longer stripped from a `reference name`_, if the
424       id_prefix_ setting is non-empty.
426       Example:
427         with ``--id-prefix="DU-"``, a section with title "34. May"
428         currently gets the identifier key ``DU-may`` and after the
429         change the identifier key ``DU-34-may``.
431     - The default value for the auto_id_prefix_ setting changed to ``%``:
432       "use the tag name as prefix for auto-generated IDs".
433       Set auto_id_prefix_ to ``id`` for unchanged auto-IDs.
435   HTML5:
436     - Use the semantic tag <aside> for footnote text and citations, topics
437       (except abstract and toc), admonitions, and system messages.
438       Use <nav> for the Table of Contents.
440     - Make "auto" table column widths the default: Only specify column
441       widths, if the `"widths" option`_ is set and not "auto".
442       The table-style__ setting "colwidths-grid" restores the current default.
444       __ docs/user/config.html#table-style
446     - Items of a definition list with class argument "details" are
447       converted to `details disclosure elements`_. Example::
449         ..class:: details
451         Summary
452           This additional information should be hidden.
454     - Do not add "compound-first", "compound-middle", or "compound-last" to
455       elements nested in a compound. Use child selector and ":first-child",
456       ":last-child" pseudo classes instead.
458     - Use class value "backrefs" instead of "fn-backref" for a span of
459       back-references.
461     - Write footnote brackets and field term colons to HTML, so that they
462       are present also without CSS and when copying text.
464     - Move space character between section number and heading into
465       "sectnum" span.
467   `math-output`_: html
468     - Support more commands, fix mapping of commands to Unicode characters.
469     - Scale variable sized operators and big delimiters with CSS.
470     - Don't use <tt> element (deprecated in HTML5).
471     - Use STIX fonts if available.
473   LaTeX:
474      `legacy_class_functions`_ setting default changed to "False",
475      admonitions are now environments.
477 * New standard Docutils doctree node: <meta__>.
479   __ docs/ref/doctree.html#meta
481 * New configuration settings:
483   - [latex writers] legacy_column_widths_ and
484   - [html5 writer] image_loading_.
486 * Removed files:
487   ``iepngfix.htc`` and ``blank.gif`` (IE 6 workaround for `s5_html`).
489 * Removed sub-module:
490   ``parsers.rst.directives.html``
491   (reversed in release 0.18.1).
493 * Removed function: utils.unique_combinations()
494   (obsoleted by itertools.combinations()).
496 * Removed attributes:
498   - ``HTMLTranslator.topic_classes``: check ``node.parent.classes`` instead.
499   - ``nodes.Text.rawsource``: we store the null-escaped text in Text
500     nodes since 0.16 so there is no additional information in the
501     rawsource.
503 * Major refactoring and fixes/additions in
504   ``docutils/utils/math/math2html.py`` and
505   ``docutils/utils/math/latex2mathml.py``
506   (mathematical notation in HTML, cf. `LaTeX syntax for mathematics`_).
508 * nodes.Node.traverse() returns an iterator instead of a list
509   (reversed in release 0.18.1).
511 * Various bugfixes and improvements (see HISTORY_).
513   Fix spelling errors in documentation and docstrings.
514   Thanks to Dimitri Papadopoulos.
516 .. _"widths" option: __ docs/ref/rst/directives.html#table
517 .. _identifier normalization:
518     docs/ref/rst/directives.html#identifier-normalization
519 .. _id_prefix: docs/user/config.html#id-prefix
520 .. _auto_id_prefix: docs/user/config.html#auto-id-prefix
521 .. _details disclosure elements:
522     https://www.w3.org/TR/html52/interactive-elements.html#the-details-element
523 .. _LaTeX syntax for mathematics: docs/ref/rst/mathematics.html
524 .. _legacy_column_widths: docs/user/config.html#legacy-column-widths
527 Release 0.17.1 (2021-04-16)
528 ===========================
530 * Bug fixes (for details see the Docutils `HISTORY`_).
532 Release 0.17 (2021-04-03)
533 =========================
535 * Numerous bug fixes and improvements
536   (for details see the Docutils `HISTORY`_).
538 * Installing with ``setup.py`` now requires setuptools_.
539   Alternatively, install with pip_.
541 * The generic command line front end tool docutils-cli.py_ allows
542   the free selection of reader, parser, and writer components.
544 * Support Arabic language.
546 * New, **experimental** wrapper to integrate the `recommonmark`__
547   Markdown parser for use with Docutils.
548   Currently only tested with recommonmark version 0.4.0.
550   __ https://pypi.org/project/recommonmark/
552 * HTML5 writer:
554   - New option embed_images_.
556   - Use semantic tags (for details see the Docutils `HISTORY`_).
558   - Change the `initial_header_level`_ setting's default to "2", as browsers
559     use the `same style for <h1> and <h2> when nested in a section`__.
561   - New optional style ``responsive.css``, adapts to different screen
562     sizes.
564   - Move non-essential styling from ``minimal.css`` to ``plain.css``
565     rsp. ``responsive.css``.
567   - Show code line numbers as pseudo-elements so they are skipped when
568     copying the code block from the page.
570   .. _initial_header_level: docs/user/config.html#initial-header-level
571   __ https://stackoverflow.com/questions/39547412/same-font-size-for-h1-and-h2-in-article
572   .. _embed_images: docs/user/config.html#embed-images
574 * LaTeX writer:
576   - New configuration setting `legacy_class_functions`_.
578   - The special value "auto" for the `graphicx_option`_ setting
579     is no longer supported (it never worked for xetex/luatex).
581   - `Styling commands`__ using the legacy ``\docutilsrole`` prefix are
582     now ignored. Use ``\DUrole``.
584     __ docs/user/latex.html#classes
586   - Most helper commands and element definitions are now defined in the
587     LaTeX package `docutils.sty`_ and only inserted in the document
588     preamble if the stylesheet__ setting does not lists "docutils".
590     __ docs/user/config.html#stylesheet-latex-writers
592   - Remove legacy LaTeX stylesheet ``docutils-05-compat.sty``.
594 .. _setuptools: https://pypi.org/project/setuptools/
595 .. _pip: https://pypi.org/project/pip/
596 .. _docutils-cli.py: docs/user/tools.html#docutils-cli-py
597 .. _legacy_class_functions: docs/user/config.html#legacy-class-functions
598 .. _graphicx_option: docs/user/config.html#graphicx-option
599 .. _docutils.sty: https://ctan.org/pkg/docutils
602 Release 0.16 (2020-01-12)
603 =========================
605 Docutils 0.16.x supports Python 2.7 and Python >= 3.5 natively,
606 without the use of the ``2to3`` tool.
608 * reStructuredText:
610   - Keep `backslash escapes`__ in the document tree. This allows, e.g.,
611     escaping of author-separators in `bibliographic fields`__.
613   __ https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#escaping-mechanism
614   __ docs/ref/rst/restructuredtext.html#bibliographic-fields
616 * LaTeX writer:
618   - Informal titles of type "rubric" default to bold-italic and left aligned.
619   - Deprecate ``\docutilsrole`` prefix for styling commands:
620     use ``\DUrole`` instead.
621   - Fix topic subtitle.
622   - Add "latex writers" to the `config_section_dependencies`.
623   - Ignore classes for `rubric` elements
624     (class wrapper interferes with LaTeX formatting).
626 * tools/buildhtml.py
628   - New option ``--html-writer`` allows to select "html" (default),
629     "html4" or "html5" (deprecated in favour of the `"writer" setting`_
630     in Docutils 0.18).
632 * docutils/io.py
634   - Remove the `handle_io_errors` argument from io.FileInput/Output.
636 * docutils/nodes.py
638   - If `auto_id_prefix`_ ends with "%", this is replaced with the tag name.
640 * Various bugfixes and improvements (see HISTORY_).
642 .. _"writer" setting: docs/user/config.html#writer-buildhtml-application
643 .. _auto_id_prefix: docs/user/config.html#auto-id-prefix
646 Release 0.15 (2019-07-20)
647 =========================
649 Docutils 0.15.x is compatible with Python versions 2.6, 2.7 and 3.3 to 3.5.
651 .. Note::
653    Docutils 0.15.x is the last version supporting Python 2.6, 3.3 and 3.4.
655 * reStructuredText:
657   - Allow embedded colons in field list field names (before, tokens like
658     ``:this:example:`` were considered ordinary text).
660   - Fixed a bug with the "trim" options of the "unicode" directive.
662 * languages: Added Korean localisation (ko).
665 Release 0.14 (2017-08-03)
666 =========================
668 .. Note::
670    Docutils 0.14.x is the last version supporting Python 2.4, 2.5,
671    3.1, and 3.2.
673 * docutils/docs/ref/docutils.dtd:
675   - Enable validation of Docutils XML documents against the DTD:
677 * docutils/parsers/rst/:
679   - Added functionality: escaped whitespace in URI contexts.
680   - Consistent handling of all whitespace characters in inline markup
681     recognition. (May break documents that relied on some whitespace
682     characters (NBSP, ...) *not* to be recognized as whitespace.)
684 * docutils/utils/smartquotes.py:
686   - Update quote definitions for et, fi, fr, ro, sv, tr, uk.
687   - Add quote definitions for hr, hsb, hu, lv, sh, sl, sr.
688   - Differentiate apostrophe from closing single quote (if possible).
689   - Add command line interface for stand-alone use (requires 2.7).
691 * docutils/writers/_html_base:
693   - Provide default title in metadata.
694   - The MathJax CDN shut down on April 30, 2017. For security reasons, we
695     don't use a third party public installation as default but warn
696     if `math-output` is set to MathJax without specifying a URL.
697     See math-output_ for details.
699 * docutils/writers/html4css1:
701   - Respect automatic table column sizing.
703 * docutils/writers/latex2e/__init__.py
705   - Handle class arguments for block-level elements by wrapping them
706     in a "DUclass" environment. This replaces the special handling for
707     "epigraph" and "topic" elements.
709 * docutils/writers/odf_odt:
711   - Language option sets ODF document's default language
712   - Image width, scale, ... set image size in generated ODF.
714 * tools/
716   - New front-end ``rst2html4.py``.
719 Release 0.13.1 (2016-12-09)
720 ===========================
722 * docutils/writers/html5_polyglot
724   - New HTML writer generating `HTML 5`_.
726 * tools/
728   - New front-end ``rst2html5.py``.
730 * languages: persian/farsi (fa) and latvian (la) mappings.
732 * change default base url for :rfc: to http://tools.ietf.org/html/
734 * tables accept widths, a list and align
736 * latex2e: Fix admonition width, remove deprecated options,
737   better tablewidth auto, ...
739 * rst.el: The problem with ``electric-indent-mode`` has been fixed.
741 .. _HTML 5: https://www.w3.org/TR/html5/
744 Release 0.12 (2014-07-06)
745 =========================
747 Small changes only, release current state
750 Release 0.11 (2013-07-22)
751 =========================
753 * General
755   - Apply [ 2714873 ] Fix for the overwriting of document attributes.
756   - Support embedded aliases within hyperlink references.
757   - Fix [ 228 ] try local import of docutils components (reader, writer, parser,
758     language module) before global search.
760 * docutils/parsers/rst/directives/tables.py
762   - Fix [ 210 ] Python 3.3 checks CVS syntax only if "strict" is True.
764 * docutils/writers/html4css1/__init__.py
765   - Fix [ 3600051 ] for tables in a list, table cells are not compacted.
766   - New setting `stylesheet_dirs` (see above).
768     Now, it is easy to add a custom stylesheet to Docutils' default
769     stylesheet with, e.g., ``--stylesheet_path='html4css1.css, mystyle.css'``
771     Changed behaviour of the default settings:
772       if there is a file ``html4css1.css`` in the working directory of the
773       process at launch, it is used instead of the one provided by Docutils
774       in the writer source directory.
776   - New default for math-output_: ``HTML math.css``.
777   - Avoid repeated class declarations in html4css1 writer
778     (modified version of patch [ 104 ]).
780 * docutils/writers/latex2e/__init__.py
782   - Drop the simple algorithm replacing straight double quotes with
783     English typographic ones.
784     Activate the SmartQuotes_ transform if you want this feature.
785   - New setting `stylesheet_dirs`: Comma-separated list of directories
786     where stylesheets are found. Used by `stylesheet_path` when expanding
787     relative path arguments.
789 * docutils/writers/manpage.py
791   - Fix [3607063] handle lines starting with a period.
792   - Fix option separating comma was bold (thanks to Bill Morris).
794 .. _math-output: docs/user/config.html#math-output
795 .. _SmartQuotes: docs/user/config.html#smart-quotes
798 Release 0.10 (2012-12-16)
799 =========================
801 Docutils 0.10 is compatible with Python versions from 2.4 to 3.2.
803 * General:
805   - SmartQuotes transform for typographic quotes and dashes.
807   - ``docutils/math``, ``docutils/error_reporting.py``, and
808     ``docutils/urischemes.py`` moved to the utils package.
809     Code importing these modules needs to adapt, e.g.::
811       try:
812           import docutils.math as math
813       except ImportError:
814           import docutils.utils.math as math
816   - enhanced math and error handling.
818 * docutils/io.py
820   - FileInput/FileOutput: no system-exit on IOError.
821     The `handle_io_errors` argument is ignored.
823 * docutils/writers/html4css1/__init__.py
825   - Use ``<code>`` tag for inline "code",
826     do not drop nested inline nodes (syntax highlight tokens).
827   - Customizable MathJax URL (based on patch by Dmitry Shachnev).
828   - No line break after opening inline math tag.
830 * docutils/writers/latex2e/__init__.py, docutils/writers/xetex/__init__.py
832   - Fix section numbering by LaTeX.
834 * docutils/writers/s5_html/__init__.py
836   - Fix [ 3556388 ] Mathjax does not work with rst2s5.
839 Release 0.9.1 (2012-06-17)
840 ==========================
842 .. Note::
844    Docutils 0.9.1 is the last version supporting Python 2.3.
846 * General:
848   Several fixes for Python 3 usage.
850 * docutils/setup.py
852   - Fix [ 3527842 ]. Under Python 3, converted tests and tools were
853     installed in the PYTHONPATH. Converted tests are now
854     stored in ``docutils/test3/``, tools no longer need conversion.
856     If you installed one of Docutils versions 0.7 ... 0.9 with
857     ``setup.py install`` under Python 3, remove the spurious
858     ``test/`` and ``tools/`` directories in the site library root.
861 Release 0.9 (2012-05-02)
862 =========================
864 * General:
866   - reStructuredText "code" role and directive with syntax highlighting
867     by Pygments_.
868   - "code" option of the "include" directive.
870   .. _Pygments: https://pygments.org/
872   - Fix [ 3402314 ] allow non-ASCII whitespace, punctuation
873     characters and "international" quotes around inline markup.
875   - Fix handling of missing stylesheets.
877 * setup.py
879   - Fix [ 2971827 ] and [ 3442827 ]
880     extras/roman.py moved to docutils/utils/roman.py
882 * docutils/utils.py -> docutils/utils/__init__.py
884   - docutils.utils is now a package (providing a place for sub-modules)
886 * docutils/writers/html4css1/__init__.py
888   - change default for `math-output` setting to MathJax
890 * docutils/writers/latex2e/__init__.py
892   - Support the `abbreviation` and `acronym` standard roles.
893   - Record only files required to generate the LaTeX source as dependencies.
894   - Use ``\setcounter{secnumdepth}{0}`` instead of ``*``-versions
895     when suppressing LaTeX section numbering.
898 Release 0.8.1 (2011-08-30)
899 ==========================
901 * General:
903   - Fix [ 3364658 ] (Change last file with Apache license to BSD-2-Clause)
904     and [ 3395920 ] (correct copyright info for rst.el).
906 * docutils/writers/latex2e/__init__.py
908   - Clean up Babel language setting. Restores Sphinx compatibility.
911 Release 0.8 (2011-07-07)
912 ========================
914 * COPYING:
916   - Some additions to the Docutils core are released under the 2-Clause BSD
917     license.
919 * General:
921   - Handle language codes according to `BCP 47`_.
922   - If the specified language is not supported by Docutils,
923     warn and fall back to English.
924   - Math support: reStructuredText "math" role and directive,
925     ``math`` and ``math_block`` doctree elements.
926   - Orphaned "python" reader and "newlatex2e" writer moved to the sandbox.
928   .. _BCP 47: https://www.rfc-editor.org/rfc/bcp/bcp47.txt
930 * reStructuredText:
932   - most directives now support a "name" option that attaches a
933     reference name. So you can write ::
935       .. figure:: image.png
936          :name: figure name
938     as a short form of ::
940       .. _figure name:
942       .. figure:: image.png
944 Internationalization:
946 * Added lithuanian mappings.
948 Components:
950 * HTML writer:
952   - New setting "math-output" with support for HTML, MathML, and LaTeX.
954 * LaTeX2e writer:
956   - Convert image URI to a local file path.
957   - Apply [ 3148141 ] fix multicolumn support when a colspanning cell
958     has more than one paragraph (Wolfgang Scherer).
960 * XeTeX writer:
962   - New writer generating LaTeX code for compiling with ``xelatex``.
964     XeTeX uses unicode and modern font technologies.
966 * and fixes and enhancements here and there.
969 Release 0.7 (2010-07-07)
970 ========================
972 Components:
974 * HTML writer:
976   - Support SVG and SWF images (thanks to Stefan Rank).
977   - Generate valid XHTML for centered images with targets.
978     Use CSS classes instead of "align" tags for image alignment.
980 * LaTeX2e writer:
982   - Use the ``\url`` command for URLs (breaks long URLs instead of writing
983     into the margin).
984   - Preserve runs of spaces in 'inline literals'.
985   - Deprecate ``figure_footnotes`` setting.
986   - Rename ``use_latex_footnotes`` setting to `docutils_footnotes`__.
987   - New ``latex_preamble`` setting.
988   - Use PDF standard fonts (Times/Helvetica/Courier) as default.
989   - `hyperref` package called with ``unicode`` option (see the
990     `hyperref config tips`__ for how to override).
991   - Drop the special `output_encoding`__ default ("latin-1").
992     The Docutils wide default (usually "UTF-8") is used instead.
994   __ docs/user/config.html#docutils-footnotes
995   __ docs/user/latex.html#hyperlinks
996   __ docs/user/latex.html#output-encoding
998 * manpage writer:
1000   - Titles level 1, that is ``.SH``, always uppercase.
1001   - Apply patch from mg: literal text should be bold in man-pages.
1003 General:
1005 * io.FileInput opens files as text files with universal newline support
1006   (mode "rU", configurable with the new optional argument "mode").
1008 * setup.py:
1010   - Python 3 support: copy test/ and tools/ to the build-dir
1011     and convert Python sources with 2to3.
1014 Release 0.6 (2009-10-11)
1015 ========================
1017 Docutils 0.6 is compatible with Python versions from 2.3 up to 2.6
1018 and convertible to 3.1 code.
1020 .. note::
1022    The "newlatex" writer is orphaned.
1024    The recommended way to generate PDF output is to use either the
1025    LaTeX2e writer or one of the alternatives listed at
1026    https://docutils.sourceforge.io/docs/user/links.html#pdf.
1028 * reStructuredText:
1030   - Allow length units for all length specifications.
1031   - Allow percent sign in "scale" argument of "figure" and "image" directives.
1032   - Bugfix: The "figalign" argument of a figure now works as intended
1033     (aligning the figure not its contents).
1034   - Align images with class "align-[right|center|left]"
1035     (allows setting the alignment of an image in a figure).
1036   - Hard tabs **in literal inclusions** are replaced by spaces.
1037     This is configurable via the new ``:tab-width:`` option of the
1038     `"include" directive`_ (a negative tab-width prevents tab expansion).
1040 * HTML writer:
1042   - ``--stylesheet`` and ``--stylesheet-path`` options now support a comma
1043     separated list of stylesheets.
1045 * LaTeX2e writer:
1047   - New defaults:
1048     - font-encoding: "T1" (formerly implicitly set by 'ae').
1049     - use-latex-toc: true (ToC with page numbers).
1050     - use-latex-footnotes: true (no mixup with figures).
1051     - Float placement defaults to "here definitely" (configurable).
1052     - Align of image in a figure defaults to 'center'.
1053     - Use class defaults for page margins ('typearea' now optional).
1054   - Support LaTeX packages as ``--stylesheet`` arguments.
1055   - Use ``bp`` for lengths without unit or unit ``pt``,
1056     do not convert ``px`` to ``pt``.
1057   - Do not use 'ae' and 'aeguill' packages if font-encoding is set to ''.
1058   - Set sub- and superscript role argument as text not math.
1059   - Support custom roles based on standard roles.
1060   - Load packages and define macros only if required in the document.
1061   - All Docutils specific LaTeX macros are prefixed with ``DU``.
1062   - Better conformance to Docutils specifications with "use_latex_toc".
1063   - If 'sectnum_xform' is False, the 'sectnum' directive triggers
1064     section numbering by LaTeX.
1065   - Use default font in admonitions and sidebar.
1066   - Typeset generic topic as "quote with title".
1067   - Use template (file and configuration option).
1068   - Render doctest blocks as literal blocks (indented).
1070 * ODT writer:
1072   - moved from sandbox to Doctutils core.
1074 * manpage writer:
1076   - moved from sandbox to Doctutils core.
1078 .. _"include" directive:
1079     docs/ref/rst/directives.html#including-an-external-document-fragment
1082 Release 0.5 (2008-06-25)
1083 ========================
1085 .. Note::
1087    Docutils 0.5 is the last version supporting Python 2.2.
1089 Components:
1091 * HTML writer.
1093   - Dropped all ``name`` attributes of ``a`` elements (``id`` is
1094     universally supported now).
1096 * LaTeX2e writer:
1098   - Better bibTeX citation support.
1099   - Add ``--literal-block-env``
1101 * PEP writer:
1103   - Changed to support new python.org website structure and
1104     pep2pyramid.py.
1106 reStructuredText:
1108 * Changed the directive API to a new object-oriented system.
1109   (Compatibility for the old, functional-style directive interface is
1110   retained.)  See the updated `Creating reStructuredText Directives`__
1111   how-to.
1113   __ docs/howto/rst-directives.html
1115 * Allow ``+`` and ``:`` in reference names requested for citations.
1117 Documentation:
1119 * Added `Deploying Docutils Securely`__
1121   __ docs/howto/security.txt
1123 Internationalization:
1125 * Added hebrew mappings.
1127 General:
1129 * Configuration files are now assumed and required to be
1130   UTF-8-encoded.
1132 * Added docutils/writers/html4css1/template.txt.
1134 * Enhance emacs support.
1137 Release 0.4 (2006-01-09)
1138 ========================
1140 .. Note::
1142    Docutils 0.4 is the last version supporting Python 2.1.
1144    It is also the last version that will make compromises in
1145    its HTML output for Netscape Navigator 4.  Docutils 0.5 will
1146    require more up-to-date browsers (the exact definition is to be
1147    determined).
1149 Components:
1151 * Added an `S5/HTML writer`__ and the rst2s5.py__ front end:
1152   multi-platform, multi-browser HTML slide shows.
1154   __ docs/user/slide-shows.html
1155   __ docs/user/tools.html#rst2s5
1157 * The newlatex2e writer is nearing completion.
1159 * Added a DocTree reader, ``publish_doctree`` and
1160   ``publish_from_doctree`` convenience functions, for document tree
1161   extraction and reprocessing.
1163 reStructuredText:
1165 * Added directives: "container__" (generic block-level container),
1166   "default-role__" (role used for \`backtick\` syntax), "title__"
1167   (document title metadata), and "date__" (generate the current local
1168   date, for substitution definitions).
1170   __ docs/ref/rst/directives.html#container
1171   __ docs/ref/rst/directives.html#default-role
1172   __ docs/ref/rst/directives.html#title
1173   __ docs/ref/rst/directives.html#date
1175 * Length units are now supported for image_ sizes.
1177   .. _image: docs/ref/rst/directives.html#image
1179 * Added `standard definition files`__ for special characters etc.
1181   __ docs/ref/rst/definitions.html
1183 Internationalization:
1185 * Added Japanese and Simplified Chinese language mappings, and support
1186   for double-width CJK-characters in tables and section titles.
1188 Documentation:
1190 * Added a `guide for distributors`__ (package maintainers) and a
1191   `guide for developers`__.
1193   __ docs/dev/distributing.html
1194   __ docs/dev/hacking.html
1196 General:
1198 * Added significant `Emacs support for reST`__.
1200   __ docs/user/emacs.html
1202 * Added a `--strip-comments`__ option.
1204   __ docs/user/config.html#strip-comments
1206 * `--embed-stylesheet`__ is now the default for the HTML writer
1207   (rather than --link-stylesheet).
1209   __ docs/user/config.html#embed-stylesheet
1212 Release 0.3.9 (2005-05-26)
1213 ==========================
1215 * Added "file_insertion_enabled__" and "raw_enabled__" settings.
1217   __ docs/user/config.html#file-insertion-enabled
1218   __ docs/user/config.html#raw-enabled
1220 * Added `auto-enumerated lists`__.
1222   __ docs/ref/rst/restructuredtext.html#enumerated-lists
1224 * Added `"header" and "footer"`__ directives.
1226   __ docs/ref/rst/directives.html#document-header-footer
1228 * Added "list-table__" directive.
1230   __ docs/ref/rst/directives.html#list-table
1232 * Added support for `section subtitles`__.
1234   __ docs/user/config.html#sectsubtitle-xform
1236 * Added "field_name_limit__" and "option_limit__" settings to HTML writer.
1238   __ docs/user/config.html#field-name-limit
1239   __ docs/user/config.html#option-limit
1241 * Added "cloak_email_addresses__" setting to HTML writer.
1243   __ docs/user/config.html#cloak-email-addresses
1245 * UTF-8 BOMs are now removed from the input stream.
1248 Release 0.3.7 (2004-12-24)
1249 ==========================
1251 * A special "`line block`__" syntax has been added.  (Also see the
1252   `quick reference`__.)
1254   __ docs/ref/rst/restructuredtext.html#line-blocks
1255   __ docs/user/rst/quickref.html#line-blocks
1257 * Empty sections are now allowed.
1259 * A "raw__" role has been added.
1261   __ docs/ref/rst/roles.html#raw
1263 * The LaTeX writer now escapes consecutive dashes (like "--" or "---")
1264   so that they are no longer transformed by LaTeX to en or em dashes.
1265   (Please see the FAQ__ for how to represent such dashes.)
1267   __ FAQ.html#how-can-i-represent-esoteric-characters-e-g-character-entities-in-a-document
1269 * A `dependency recorder`__ has been added.
1271   __ docs/user/config.html#record-dependencies
1273 * A directive has been added for `compound paragraphs`__.
1275   __ docs/ref/rst/directives.html#compound-paragraph
1278 Release 0.3.5 (2004-07-29)
1279 ==========================
1281 * Improved, extended and reorganized the documentation__.
1283   __ docs/index.html
1285 * Added "csv-table__" directive.
1287   __ docs/ref/rst/directives.html#csv-table
1289 .. _HISTORY: HISTORY.html
1290 .. _Python 3 compatibility: README.html#python-3-compatibility