diff --git a/CHANGES b/CHANGES index 68c8118ec..0949ae7e2 100644 --- a/CHANGES +++ b/CHANGES @@ -132,6 +132,11 @@ Features added * LaTeX: support rendering (not in math, yet) of Greek and Cyrillic Unicode letters in non-Cyrillic document even with ``'pdflatex'`` as :confval:`latex_engine` (refs: #5645) +* #5660: The ``versionadded``, ``versionchanged`` and ``deprecated`` directives + are now generated with their own specific CSS classes + (``added``, ``changed`` and ``deprecated``, respectively) in addition to the + generic ``versionmodified`` class. + Bugs fixed ---------- diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py index 21626ba35..4a515d2cc 100644 --- a/sphinx/domains/changeset.py +++ b/sphinx/domains/changeset.py @@ -34,6 +34,12 @@ versionlabels = { 'deprecated': _('Deprecated since version %s'), } +versionlabel_classes = { + 'versionadded': 'added', + 'versionchanged': 'changed', + 'deprecated': 'deprecated', +} + locale.versionlabels = DeprecatedDict( versionlabels, 'sphinx.locale.versionlabels is deprecated. ' @@ -78,6 +84,7 @@ class VersionChange(SphinxDirective): messages = [] if self.content: self.state.nested_parse(self.content, self.content_offset, node) + classes = ['versionmodified', versionlabel_classes[self.name]] if len(node): if isinstance(node[0], nodes.paragraph) and node[0].rawsource: content = nodes.inline(node[0].rawsource, translatable=True) @@ -87,11 +94,11 @@ class VersionChange(SphinxDirective): node[0].replace_self(nodes.paragraph('', '', content, translatable=False)) para = cast(nodes.paragraph, node[0]) - para.insert(0, nodes.inline('', '%s: ' % text, classes=['versionmodified'])) + para.insert(0, nodes.inline('', '%s: ' % text, classes=classes)) else: para = nodes.paragraph('', '', nodes.inline('', '%s.' % text, - classes=['versionmodified']), + classes=classes), translatable=False) node.append(para) diff --git a/tests/test_intl.py b/tests/test_intl.py index ee4defa0e..4961d2550 100644 --- a/tests/test_intl.py +++ b/tests/test_intl.py @@ -705,20 +705,20 @@ def test_html_versionchanges(app): return '' expect1 = ( - """
Deprecated since version 1.0: """ + """
Deprecated since version 1.0: """ """THIS IS THE FIRST PARAGRAPH OF DEPRECATED.
\n""" """THIS IS THE SECOND PARAGRAPH OF DEPRECATED.
\n""") matched_content = get_content(result, "deprecated") assert expect1 == matched_content expect2 = ( - """New in version 1.0: """ + """
New in version 1.0: """ """THIS IS THE FIRST PARAGRAPH OF VERSIONADDED.
\n""") matched_content = get_content(result, "versionadded") assert expect2 == matched_content expect3 = ( - """Changed in version 1.0: """ + """
Changed in version 1.0: """ """THIS IS THE FIRST PARAGRAPH OF VERSIONCHANGED.
\n""") matched_content = get_content(result, "versionchanged") assert expect3 == matched_content