]> granicus.if.org Git - python/commitdiff
fix deprecated-removed directive with sphinx 1.2
authorGeorg Brandl <georg@python.org>
Tue, 21 Jan 2014 18:20:31 +0000 (19:20 +0100)
committerGeorg Brandl <georg@python.org>
Tue, 21 Jan 2014 18:20:31 +0000 (19:20 +0100)
Doc/tools/sphinxext/pyspecific.py
Doc/tools/sphinxext/static/basic.css

index 388fe3a99b1cc858da88fb91599328d8450e3450..35bc0407933d03ac272da34b253eb8a03e043c3f 100644 (file)
@@ -5,7 +5,7 @@
 
     Sphinx extension with Python doc-specific markup.
 
-    :copyright: 2008-2013 by Georg Brandl.
+    :copyright: 2008-2014 by Georg Brandl.
     :license: Python license.
 """
 
@@ -145,8 +145,6 @@ class PyDecoratorMethod(PyDecoratorMixin, PyClassmember):
 from sphinx.locale import versionlabels
 from sphinx.util.compat import Directive
 
-versionlabels['deprecated-removed'] = \
-    'Deprecated since version %s, will be removed in version %s'
 
 class DeprecatedRemoved(Directive):
     has_content = True
@@ -155,24 +153,40 @@ class DeprecatedRemoved(Directive):
     final_argument_whitespace = True
     option_spec = {}
 
+    _label = 'Deprecated since version %s, will be removed in version %s'
+
     def run(self):
         node = addnodes.versionmodified()
         node.document = self.state.document
         node['type'] = 'deprecated-removed'
         version = (self.arguments[0], self.arguments[1])
         node['version'] = version
+        text = self._label % version
         if len(self.arguments) == 3:
             inodes, messages = self.state.inline_text(self.arguments[2],
                                                       self.lineno+1)
-            node.extend(inodes)
-            if self.content:
-                self.state.nested_parse(self.content, self.content_offset, node)
-            ret = [node] + messages
+            para = nodes.paragraph(self.arguments[2], '', *inodes)
+            node.append(para)
+        else:
+            messages = []
+        if self.content:
+            self.state.nested_parse(self.content, self.content_offset, node)
+        if len(node):
+            if isinstance(node[0], nodes.paragraph) and node[0].rawsource:
+                content = nodes.inline(node[0].rawsource, translatable=True)
+                content.source = node[0].source
+                content.line = node[0].line
+                content += node[0].children
+                node[0].replace_self(nodes.paragraph('', '', content))
+            node[0].insert(0, nodes.inline('', '%s: ' % text,
+                                           classes=['versionmodified']))
         else:
-            ret = [node]
+            para = nodes.paragraph('', '',
+                nodes.inline('', '%s.' % text, classes=['versionmodified']))
+            node.append(para)
         env = self.state.document.settings.env
         env.note_versionchange('deprecated', version[0], node, self.lineno)
-        return ret
+        return [node] + messages
 
 
 # Support for including Misc/NEWS
index 2058b05f941ed3f6464283d921b51c7bc49aef16..3242a8134586e91691c14f0893182f0e533c5bc2 100644 (file)
@@ -342,7 +342,7 @@ dl.glossary dt {
     padding: 7px;
 }
 
-div.deprecated p {
+div.deprecated p, div.deprecated-removed p {
     margin-bottom: 0;
 }