16
16
17
17
import sphinx
18
18
from sphinx .util .nodes import split_explicit_title
19
+ from sphinx .util .compat import Directive
19
20
from sphinx .writers .html import HTMLTranslator
20
21
from sphinx .writers .latex import LaTeXTranslator
21
22
from sphinx .locale import versionlabels
27
28
Body .enum .converters ['lowerroman' ] = \
28
29
Body .enum .converters ['upperroman' ] = lambda x : None
29
30
30
- if sphinx .__version__ [:3 ] < '1.2' :
31
+ SPHINX11 = sphinx .__version__ [:3 ] < '1.2'
32
+
33
+ if SPHINX11 :
31
34
# monkey-patch HTML translator to give versionmodified paragraphs a class
32
35
def new_visit_versionmodified (self , node ):
33
36
self .body .append (self .starttag (node , 'p' , CLASS = node ['type' ]))
@@ -88,8 +91,6 @@ def source_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
88
91
89
92
# Support for marking up implementation details
90
93
91
- from sphinx .util .compat import Directive
92
-
93
94
class ImplementationDetail (Directive ):
94
95
95
96
has_content = True
@@ -142,10 +143,6 @@ def run(self):
142
143
143
144
# Support for documenting version of removal in deprecations
144
145
145
- from sphinx .locale import versionlabels
146
- from sphinx .util .compat import Directive
147
-
148
-
149
146
class DeprecatedRemoved (Directive ):
150
147
has_content = True
151
148
required_arguments = 2
@@ -171,23 +168,26 @@ def run(self):
171
168
messages = []
172
169
if self .content :
173
170
self .state .nested_parse (self .content , self .content_offset , node )
174
- if len (node ):
175
171
if isinstance (node [0 ], nodes .paragraph ) and node [0 ].rawsource :
176
172
content = nodes .inline (node [0 ].rawsource , translatable = True )
177
173
content .source = node [0 ].source
178
174
content .line = node [0 ].line
179
175
content += node [0 ].children
180
176
node [0 ].replace_self (nodes .paragraph ('' , '' , content ))
181
- node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
182
- classes = ['versionmodified' ]))
183
- else :
177
+ if not SPHINX11 :
178
+ node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
179
+ classes = ['versionmodified' ]))
180
+ elif not SPHINX11 :
184
181
para = nodes .paragraph ('' , '' ,
185
182
nodes .inline ('' , '%s.' % text , classes = ['versionmodified' ]))
186
183
node .append (para )
187
184
env = self .state .document .settings .env
188
185
env .note_versionchange ('deprecated' , version [0 ], node , self .lineno )
189
186
return [node ] + messages
190
187
188
+ # for Sphinx < 1.2
189
+ versionlabels ['deprecated-removed' ] = DeprecatedRemoved ._label
190
+
191
191
192
192
# Support for including Misc/NEWS
193
193
0 commit comments