./textproc/py-docutils, Python tool to generate documents

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 0.23, Package name: py313-docutils-0.23, Maintainer: pkgsrc-users

The purpose of the Docutils project is to create a set of tools
for processing plaintext documentation into useful formats, such
as HTML, XML, and TeX.


Required to run:
[textproc/py-expat] [textproc/py-pygments] [math/py-roman] [lang/python310]

Master sites:

Filesize: 2249.827 KB

Version history: (Expand)


CVS history: (Expand)


   2026-06-01 15:34:06 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-docutils: update to 0.23.

Release 0.23 (2026-05-27)
=========================

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
    preceding `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`_ (provisional).
  - 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 reference name(s), 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()`.
   2025-12-21 16:45:45 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-docutils: update to 0.22.4.

Release 0.22.4 (2025-12-18)
===========================

reStructuredText Specification:
  - Clarify indentation rules: minimal indentation is *one* space.
  - Clarify comment syntax: Comments begin with two dots and *whitespace*.

HTML writers:
  - New value "auto" for the initial_header_level_ setting.
  - Bugfixes in the provisional style-sheet "responsive.css".
   2025-11-10 10:31:18 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-docutils: update to 0.22.3.

Release 0.22.3 (2025-11-06)
===========================

Rst parser:
  - Ignore combining characters when parsing the grid table structure.

  - Allow for auxiliary elements like `sphinx.addnodes.only`
    when testing for invalid parents of topics or sidebars.
   2025-09-21 17:43:07 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-docutils: update to 0.22.2.

Release 0.22.2 (2025-09-20)
===========================

CI of snakemake on an MacOS arm failed, because homebrew possibly restored
a vim .swp-file ... maybe.

So release without the .swp.

Release 0.22.1 (2025-09-17)
===========================

Only documentation fixes.

Release 0.22.1rc1 (2025-09-13)
==============================

* docutils/frontend.py, docutils/writers/

  - More consistent and concise command line help.

* docutils/nodes.py

  - `nodes.Element.section_hierarchy()` now returns only elements
    with non-empty "parent" attribute.

* docutils/parsers/rst/states.py

  - Relax "section title" system messages from SEVERE to ERROR.
  - Fix behaviour with nested parsing into a detached node
    (cf. bugs #508 and #509).
  - New attribute `NestedStateMachine.parent_state_machine`.
    Use case: update the "current node" of parent state machine(s)
    after nested parsing.
  - Better error messages for grid table markup errors (bug #504),
    based on patch #214 by Jynn Nelson.

* docutils/transforms/references.py

  - Better error reports for hyperlinks with embedded URI or alias.

* docutils/writers/latex2e/__init__.py

  - Add cross-reference anchors (``\phantomsection\label{...}``)
    for elements with IDs (fixes bug #503).
  - Fix cross-reference anchor placement in figures, images,
    literal-blocks, tables, and (sub)titles.
  - Simplify code for images nested in reference or figure elements.
   2025-08-05 07:01:29 by Thomas Klausner | Files touched by this commit (3)
Log message:
py-docutils: revert 0.22 upgrade

breaks qemu build
https://github.com/orgs/sphinx-doc/discussions/13806
https://sourceforge.net/p/docutils/bugs/508/
   2025-08-03 12:06:37 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-docutils: update to 0.22.

Release 0.22 (2026-07-29)
=========================

No changes to rc5.

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

* docutils/nodes.py

  - Don't invalidate indirect targets with duplicate name, if they refer to
    the same refname (similar to external targets refering to the same URI).

* docutils/parsers/rst/states.py

  - "Downgrade" targets generated from hyperlink references with embedded
    URI or alias from explicit to implicit (cf. bug #502).

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

* docutils/nodes.py

  - Don't include a "backlink" reference in system messages, if the
    referenced element is an external target (not visible in the output).

* docutils/parsers/rst/directives/references.py

  - Remove "name" from `TargetNotes.option_spec`.
    The "target-notes" directive generates one footnote element per
    external target but "name" must be unique across the document.
    So far, the name was silently dropped.

* docutils/parsers/rst/languages/en.py

  - Add alias "rst-class" for the "class" directive to \ 
improve the
    compatibility with Sphinx.

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

* docutils/parsers/rst/states.py

  - Warn about duplicate name in references with embedded internal targets.
    Fixes bug #502.

* docutils/transforms/references.py

  - New transform `CitationReferences`. Marks citation_references
    as resolved if BibTeX is used by the backend (LaTeX).

* docutils/writers/latex2e/__init__.py

  - Replace `Writer.bibtex_reference_resolver()` with a transform.
  - `LaTeXTranslator.visit_inline()` now inserts labels for the
    node's IDs.
  - Disable footnote handling by the "hyperref" LaTeX package (Docutils'
    ``\DUfootnotemark`` and ``\DUfootnotetext`` macros implement
    hyperlinks and backlinks).  Avoids "empty anchor" warnings.
  - Fix target position and re-style system messages.
  - Don't merge paragraphs if there is a target between them.

* docutils/writers/manpage.py

  - Do not drop text of internal targets.

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

* docutils/parsers/rst/directives/misc.py

  - Pass default settings to custom parser for included file.

* docutils/parsers/rst/states.py

  - Remove the `states.RSTStateMachine.memo.section_parents` cache
    (introduced in Docutils 0.22rc1) that broke 3rd-party applications
    employing a "mock memo".
  - Use `types.SimpleNamespace` instead of a local definition for
    the auxilliary class `states.Struct`.

* docutils/writers/_html_base.py

  - Fix error when determining the document metadata title from the
    source path and the internal `source` attribute is None.

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

* General

  - We have started to add type hints to Docutils (feature-request #87).

    This will be a complex programme of work and as such,
    for the time being, these type hints are "provisional"
    and should not be relied upon.

    By default, the Python interpreter treats type hints as annotations.
    Python >= 3.10 is required with active type hints
    (``typing.TYPE_CHECKING == True``).

* docs/ref/docutils.dtd

  - Allow multiple <term> elements in a <definition_list_item>.
    Fixes feature-request #60
  - The first element in a <figure> may also be a <reference>
    (with nested "clickable" <image>).

* docutils/core.py

  - Removed `Publisher.setup_option_parser()` (internal, obsolete).
  - Allow a string value (component name or alias) in the "reader",
    "parser", and "writer" arguments of \ 
`Publisher.__init__()` and
    the `publish_*()` convenience functions.

* docutils/frontend.py

  - Drop short options ``-i`` and ``-o`` for ``--input-encoding``
    and ``--output-encoding``.
  - Change the default input encoding from ``None`` (auto-detect) to \ 
"utf-8".
  - Change the default value of the root_prefix_ setting to the empty string
    (no change to the behaviour).

* docutils/io.py

  - Change the default input encoding from ``None`` (auto-detect) to \ 
"utf-8".

* docutils/nodes.py

  - Raise TypeError if the "rawsource" argument in `Element.__init__()`
    is an `Element` instance.
    Catches errors like ``nodes.hint(nodes.paragraph())``.
  - New element category classes `SubStructural` and `PureTextElement`.
  - Fix element categories.
  - New method `Element.validate()`: raise `nodes.ValidationError` if
    the element does not comply with the "Docutils Document Model".
    Provisional.
  - New "attribute validating functions"
    convert string representations to correct data type,
    normalize values, and
    raise ValueError for invalid attribute names or values.
  - New function `parse_measure()`.
  - Removed `Element.set_class()`.
  - Downgrade "duplicate ID" message level from SERIOUS to ERROR.
  - Fix recursion in `Element.get_language_code()`.
  - Do not insert <system_message> elements for duplicate explicit targets
    if this results in an invalid doctree (cf. bug #489).

* docutils/parsers/docutils_xml.py

  - New parser for Docutils XML sources. Provisional.

* docutils/parsers/recommonmark_wrapper.py

  - New method `Parser.finish_parse()` to clean up (before validating).

* docutils/parsers/rst/languages/

  - Remove mistranslations of the "admonition" directive name.

* docutils/parsers/rst/directives/__init__.py

  - Support CSS3 `length units`_. Fixes feature-request #57.

* docutils/parsers/rst/directives/images.py

  - New option "figname" for the "figure" directive.
    Fixes feature-request #44.

* docutils/parsers/rst/directives/misc.py

  - Pass the included file's path to the parser when the
    "include" directive is used with :parser: option.
    Enables system messages with correct source/line info.

* docutils/parsers/rst/directives/tables.py

  - Removed `CSVTable.decode_from_csv()` and `CSVTable.encode_from_csv()`.
    Not required with Python 3.

* docutils/parsers/rst/roles.py

  - Renamed `normalized_role_options()` to `normalize_options()`
    (it is now also used for directive options).

* docutils/parsers/rst/states.py

  - Raise warning for empty footnotes and citations.
  - Add source and line info to <enumerated-list> elements.
    Fix line number of "start value not ordinal-1" INFO message.
  - Change section handling to not rely on exceptions and reparsing.
    Based on patch #213 by Arne Skjærholt.
    Fixes bug #346 (duplicate System Messages).

* docutils/readers/__init__.py:

  - Deprecate "parser_name" argument of `Reader.__init__()`.

* docutils/transforms/frontmatter.py

  - Update `DocInfo` to work with corrected element categories.

* docutils/transforms/misc.py:

  - Fix for `misc.Transitions`: report an error if a <transition> element
    follows a <meta> or <decoration> element as this is invalid
    according to ``docutils.dtd``.

* docutils/transforms/writer_aux.py

  - Removed `Compound` transform.

* docutils/transforms/references.py

  - Make `AnonymousHyperlinks` transform idempotent.

* docutils/transforms/universal.py

  - `Messages` transform now also handles "loose" system messages
    generated by the parser.

* docutils/utils/__init__.py

  - Removed `Reporter.set_conditions()`.
    Set attributes via configuration settings or directly.

* docutils/utils/_roman_numerals.py

  - New implementation or Roman numeral support.
    Replaces the local copy of the roman.py package.

* docutils/utils/error_reporting.py

  - Removed. Obsolete in Python 3.

* docutils/writers/docutils-xml.py

  - Do not increase indentation of follow-up lines inside inline elements.
    when formatting with `indents`_.

* docutils/writers/__init__.py

  - New base class `writers.DoctreeTranslator`
    with auxiliary method `uri2path()`.

* docutils/writers/_html_base.py

  - Make MathML the default math_output_.
  - Revise image size handling methods,
    use "width" and "height" attributes for unitless values.
  - Add "px" to unitless table "width" values.

* docutils/writers/html4css1/__init__.py

  - Keep default math_output_ value "HTML math.css".
  - Add "px" to unitless table "width" values.

* docutils/writers/latex2e/__init__.py

  - `LaTeXTranslator.to_latex_length()`:
    Handle CSS3 `length units`_.
    Remove optional argument `pxunit` (ignored since at least 2012).
    Drop trailing zeroes from length values.
    Move XeTeX-specific code to the "xetex" writer.
  - Don't wrap references with custom reference-label_ in
    a ``\hyperref`` command.
  - Mark the main language when loading "babel".
  - Provide an "unknown_references_resolver" (cf. `docutils/TransformSpec`)
    for citation references resolved with BibTeX (cf. `use_bibtex`_ setting).
  - Support SVG image inclusion with the "svg" LaTeX package (see the
    `stylesheet`__ configuration setting). Solves feature-request #83
  - Add "template" to the parts returned by `Writer.assemble_parts()`.
  - Use standard `dict` for `LaTeXTranslator.requirements`
    and `LaTeXTranslator.fallbacks`.
  - Use <document> "title" attribute in pdfinfo.
  - Encode <meta> element content in pdfinfo.
  - Improve formatting of docinfo fields.
  - `LaTeXTranslator.pop_output_collector()` now returns the popped list.

  .. _reference-label: docs/user/config.html#reference-label
  __ docs/user/config.html#stylesheet-latex-writers

* docutils/writers/latex2e/docutils.sty

  - Replace use of ``\ifthenelse{\isundefined...`` (from "ifthen.sty")
    with the eTeX primitive ``\ifdefined``.
  - Add macros to emulate CSS3 `length units`_ unknown to LaTeX.

* docutils/writers/manpage.py

  - Remove code for unused emdash bullets.
  - Print Docutils version in header comment (feature-request #105).
  - Stop converting text to full capitals (bug #481).
  - Fix reference output (bug #497).
  - Use macros .UR/.UE for hyperlink references unless the new
    configuration setting text_references_ is True.
    The current default is True (text references), it will change
    to False (macro references) in Docutils 1.0.

* docutils/writers/null.py

  - `null.Writer.translate()` sets `self.output` to the empty string.

* docutils/writers/odf_odt/__init__.py

  - Use "px" as fallback unit for unitless image size attributes.
  - Fix conversion factor of "pc" (pica) to "cm".
  - Fix conversion of image width in "%" if the height is specified.
  - Adjust fallback DPI value (currently not used) to match CSS units.
  - Fix errors with ``*.xml`` style files (bug #494).
  - Use <document> "title" attribute in document metadata.

* pyproject.toml

  - Add tox.ini to the "include" list (fixes bug #486).

* tools/rst2odt.py

  - Use `core.publish_file()` instead of `core.publish_file_to_binary()`.

* tools/rst2odt_prepstyles.py

  - Removed. Use ``python -m docutils.writers.odf_odt.prepstyles``.

.. _length units: docs/ref/rst/restructuredtext.html#length-units
   2025-02-23 20:48:05 by Thomas Klausner | Files touched by this commit (2)
Log message:
py-docutils: adapt for flit_core 3.11.

Bump PKGREVISION.
   2024-04-28 11:55:06 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-docutils: update to 0.21.2.

Release 0.21.2 (2024-04-23)
===========================

* Declare support for languages Georgian and Catalan (Valencian).

* docs/ref/docutils.dtd

  - Remove declaration of element <info>.
  - Remove <decoration> from content declaration of <section> elements.

* Fix test failures.