diff --git a/CHANGES b/CHANGES index 1b3dec4c32b..a2597f277d7 100644 --- a/CHANGES +++ b/CHANGES @@ -13,11 +13,16 @@ Deprecated 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 ---------- * #10509: autosummary: autosummary fails with a shared library -* #10497: py domain: Failed to resolve strings in Literal +* #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. Testing -------- @@ -29,10 +34,11 @@ Bugs fixed ---------- * #10498: gettext: TypeError is raised when sorting warning messages if a node - has no line number -* #10493: html theme: :rst:dir:`topic` directive is rendered incorrectly with - docutils-0.18 -* #10495: IndexError is raised for a :rst:role:`kbd` role having a separator + has no line number. Patch by Adam Turner. +* #10493: HTML Theme: :rst:dir:`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. Release 5.0.0 (released May 30, 2022) ===================================== @@ -73,6 +79,7 @@ Incompatible changes * #10474: :confval:`language` does not accept ``None`` as it value. The default value of ``language`` becomes to ``'en'`` now. + Patch by Adam Turner and Takeshi KOMIYA. Deprecated ---------- @@ -128,11 +135,12 @@ Features added non-imported * #10028: Removed internal usages of JavaScript frameworks (jQuery and underscore.js) and modernised ``doctools.js`` and ``searchtools.js`` to - EMCAScript 2018. + EMCAScript 2018. Patch by Adam Turner. * #10302: C++, add support for conditional expressions (``?:``). * #5157, #10251: Inline code is able to be highlighted via :rst:dir:`role` directive -* #10337: Make sphinx-build faster by caching Publisher object during build +* #10337: Make sphinx-build faster by caching Publisher object during build. + Patch by Adam Turner. Bugs fixed ---------- @@ -140,7 +148,7 @@ Bugs fixed 5.0.0 b1 * #10200: apidoc: Duplicated submodules are shown for modules having both .pyx - and .so files + and .so files. Patch by Adam Turner and Takeshi KOMIYA. * #10279: autodoc: Default values for keyword only arguments in overloaded functions are rendered as a string literal * #10280: autodoc: :confval:`autodoc_docstring_signature` unexpectedly generates diff --git a/doc/templating.rst b/doc/templating.rst index 3d80edd6009..d9755a836b1 100644 --- a/doc/templating.rst +++ b/doc/templating.rst @@ -383,6 +383,15 @@ in the future. .. versionadded:: 4.2 +.. data:: docutils_version_info + + The version of Docutils used to build represented as a tuple of five elements. + For Docutils version 0.16.1 beta 2 this would be `(0, 16, 1, 'beta', 2)``. + The fourth element can be one of: ``alpha``, ``beta``, ``candidate``, ``final``. + ``final`` always has 0 as the last element. + + .. versionadded:: 5.0.2 + .. data:: style The name of the main stylesheet, as given by the theme or diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index b320b0df588..f5ab2d828e0 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -536,6 +536,7 @@ def prepare_writing(self, docnames: Set[str]) -> None: 'css_files': self.css_files, 'sphinx_version': __display_version__, 'sphinx_version_tuple': sphinx_version, + 'docutils_version_info': docutils.__version_info__[:5], 'style': self._get_style_filename(), 'rellinks': rellinks, 'builder': self.name, diff --git a/sphinx/themes/basic/static/basic.css_t b/sphinx/themes/basic/static/basic.css_t index 9e5047afe6f..67bfec755ca 100644 --- a/sphinx/themes/basic/static/basic.css_t +++ b/sphinx/themes/basic/static/basic.css_t @@ -237,6 +237,7 @@ a.headerlink { visibility: hidden; } +{%- if docutils_version_info[:2] < (0, 18) %} a.brackets:before, span.brackets > a:before{ content: "["; @@ -246,6 +247,7 @@ a.brackets:after, span.brackets > a:after { content: "]"; } +{% endif %} h1:hover > a.headerlink, h2:hover > a.headerlink,