Merge lp:~mitya57/ubuntu/raring/sphinx/fix-ftbfs into lp:ubuntu/raring/sphinx

Proposed by Dmitry Shachnev
Status: Merged
Merged at revision: 38
Proposed branch: lp:~mitya57/ubuntu/raring/sphinx/fix-ftbfs
Merge into: lp:ubuntu/raring/sphinx
Diff against target: 600 lines (+105/-386)
8 files modified
.pc/applied-patches (+0/-1)
.pc/fix_manpages_generation_with_new_docutils.diff/sphinx/writers/manpage.py (+0/-345)
debian/changelog (+9/-0)
debian/control (+2/-2)
debian/patches/fix_manpages_generation_with_new_docutils.diff (+0/-33)
debian/patches/series (+1/-0)
debian/patches/support_python_3.3.diff (+87/-0)
sphinx/writers/manpage.py (+6/-5)
To merge this branch: bzr merge lp:~mitya57/ubuntu/raring/sphinx/fix-ftbfs
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+130856@code.launchpad.net
To post a comment you must log in.
38. By Dmitry Shachnev

Build-depend on python3-all instead of python3.

39. By Dmitry Shachnev

* debian/patches/support_python_3.3:
  Fix various testsuite failures with Python 3.3 (LP: #1070336).
* Update Homepage field.

40. By Dmitry Shachnev

Fix patch format.

41. By Dmitry Shachnev

No-change merge from lp:ubuntu/sphinx.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.pc/applied-patches'
--- .pc/applied-patches 2012-10-22 20:20:35 +0000
+++ .pc/applied-patches 2012-11-01 17:56:20 +0000
@@ -8,4 +8,3 @@
8fix_nepali_po.diff8fix_nepali_po.diff
9pygments_byte_strings.diff9pygments_byte_strings.diff
10fix_shorthandoff.diff10fix_shorthandoff.diff
11fix_manpages_generation_with_new_docutils.diff
1211
=== removed directory '.pc/fix_manpages_generation_with_new_docutils.diff'
=== removed directory '.pc/fix_manpages_generation_with_new_docutils.diff/sphinx'
=== removed directory '.pc/fix_manpages_generation_with_new_docutils.diff/sphinx/writers'
=== removed file '.pc/fix_manpages_generation_with_new_docutils.diff/sphinx/writers/manpage.py'
--- .pc/fix_manpages_generation_with_new_docutils.diff/sphinx/writers/manpage.py 2012-10-22 20:20:35 +0000
+++ .pc/fix_manpages_generation_with_new_docutils.diff/sphinx/writers/manpage.py 1970-01-01 00:00:00 +0000
@@ -1,345 +0,0 @@
1# -*- coding: utf-8 -*-
2"""
3 sphinx.writers.manpage
4 ~~~~~~~~~~~~~~~~~~~~~~
5
6 Manual page writer, extended for Sphinx custom nodes.
7
8 :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
9 :license: BSD, see LICENSE for details.
10"""
11
12from docutils import nodes
13try:
14 from docutils.writers.manpage import MACRO_DEF, Writer, \
15 Translator as BaseTranslator
16 has_manpage_writer = True
17except ImportError:
18 # define the classes in any case, sphinx.application needs it
19 Writer = BaseTranslator = object
20 has_manpage_writer = False
21
22from sphinx import addnodes
23from sphinx.locale import admonitionlabels, versionlabels, _
24from sphinx.util.osutil import ustrftime
25
26
27class ManualPageWriter(Writer):
28 def __init__(self, builder):
29 Writer.__init__(self)
30 self.builder = builder
31
32 def translate(self):
33 visitor = ManualPageTranslator(self.builder, self.document)
34 self.visitor = visitor
35 self.document.walkabout(visitor)
36 self.output = visitor.astext()
37
38
39class ManualPageTranslator(BaseTranslator):
40 """
41 Custom translator.
42 """
43
44 def __init__(self, builder, *args, **kwds):
45 BaseTranslator.__init__(self, *args, **kwds)
46 self.builder = builder
47
48 self.in_productionlist = 0
49
50 # first title is the manpage title
51 self.section_level = -1
52
53 # docinfo set by man_pages config value
54 self._docinfo['title'] = self.document.settings.title
55 self._docinfo['subtitle'] = self.document.settings.subtitle
56 if self.document.settings.authors:
57 # don't set it if no author given
58 self._docinfo['author'] = self.document.settings.authors
59 self._docinfo['manual_section'] = self.document.settings.section
60
61 # docinfo set by other config values
62 self._docinfo['title_upper'] = self._docinfo['title'].upper()
63 if builder.config.today:
64 self._docinfo['date'] = builder.config.today
65 else:
66 self._docinfo['date'] = ustrftime(builder.config.today_fmt
67 or _('%B %d, %Y'))
68 self._docinfo['copyright'] = builder.config.copyright
69 self._docinfo['version'] = builder.config.version
70 self._docinfo['manual_group'] = builder.config.project
71
72 # since self.append_header() is never called, need to do this here
73 self.body.append(MACRO_DEF)
74
75 # overwritten -- added quotes around all .TH arguments
76 def header(self):
77 tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
78 " \"%(date)s\" \"%(version)s\" \"%(manual_group)s\"\n"
79 ".SH NAME\n"
80 "%(title)s \- %(subtitle)s\n")
81 return tmpl % self._docinfo
82
83 def visit_start_of_file(self, node):
84 pass
85 def depart_start_of_file(self, node):
86 pass
87
88 def visit_desc(self, node):
89 self.visit_definition_list(node)
90 def depart_desc(self, node):
91 self.depart_definition_list(node)
92
93 def visit_desc_signature(self, node):
94 self.visit_definition_list_item(node)
95 self.visit_term(node)
96 def depart_desc_signature(self, node):
97 self.depart_term(node)
98
99 def visit_desc_addname(self, node):
100 pass
101 def depart_desc_addname(self, node):
102 pass
103
104 def visit_desc_type(self, node):
105 pass
106 def depart_desc_type(self, node):
107 pass
108
109 def visit_desc_returns(self, node):
110 self.body.append(' -> ')
111 def depart_desc_returns(self, node):
112 pass
113
114 def visit_desc_name(self, node):
115 pass
116 def depart_desc_name(self, node):
117 pass
118
119 def visit_desc_parameterlist(self, node):
120 self.body.append('(')
121 self.first_param = 1
122 def depart_desc_parameterlist(self, node):
123 self.body.append(')')
124
125 def visit_desc_parameter(self, node):
126 if not self.first_param:
127 self.body.append(', ')
128 else:
129 self.first_param = 0
130 def depart_desc_parameter(self, node):
131 pass
132
133 def visit_desc_optional(self, node):
134 self.body.append('[')
135 def depart_desc_optional(self, node):
136 self.body.append(']')
137
138 def visit_desc_annotation(self, node):
139 pass
140 def depart_desc_annotation(self, node):
141 pass
142
143 def visit_desc_content(self, node):
144 self.visit_definition(node)
145 def depart_desc_content(self, node):
146 self.depart_definition(node)
147
148 def visit_refcount(self, node):
149 self.body.append(self.defs['emphasis'][0])
150 def depart_refcount(self, node):
151 self.body.append(self.defs['emphasis'][1])
152
153 def visit_versionmodified(self, node):
154 self.visit_paragraph(node)
155 text = versionlabels[node['type']] % node['version']
156 if len(node):
157 text += ': '
158 else:
159 text += '.'
160 self.body.append(text)
161 def depart_versionmodified(self, node):
162 self.depart_paragraph(node)
163
164 def visit_termsep(self, node):
165 self.body.append(', ')
166 raise nodes.SkipNode
167
168 # overwritten -- we don't want source comments to show up
169 def visit_comment(self, node):
170 raise nodes.SkipNode
171
172 # overwritten -- added ensure_eol()
173 def visit_footnote(self, node):
174 self.ensure_eol()
175 BaseTranslator.visit_footnote(self, node)
176
177 # overwritten -- handle footnotes rubric
178 def visit_rubric(self, node):
179 self.ensure_eol()
180 if len(node.children) == 1:
181 rubtitle = node.children[0].astext()
182 if rubtitle in ('Footnotes', _('Footnotes')):
183 self.body.append('.SH ' + self.deunicode(rubtitle).upper() +
184 '\n')
185 raise nodes.SkipNode
186 else:
187 self.body.append('.sp\n')
188 def depart_rubric(self, node):
189 pass
190
191 def visit_seealso(self, node):
192 self.visit_admonition(node)
193 def depart_seealso(self, node):
194 self.depart_admonition(node)
195
196 # overwritten -- use our own label translations
197 def visit_admonition(self, node, name=None):
198 if name:
199 self.body.append('.IP %s\n' %
200 self.deunicode(admonitionlabels.get(name, name)))
201
202 def visit_productionlist(self, node):
203 self.ensure_eol()
204 names = []
205 self.in_productionlist += 1
206 self.body.append('.sp\n.nf\n')
207 for production in node:
208 names.append(production['tokenname'])
209 maxlen = max(len(name) for name in names)
210 for production in node:
211 if production['tokenname']:
212 lastname = production['tokenname'].ljust(maxlen)
213 self.body.append(self.defs['strong'][0])
214 self.body.append(self.deunicode(lastname))
215 self.body.append(self.defs['strong'][1])
216 self.body.append(' ::= ')
217 else:
218 self.body.append('%s ' % (' '*len(lastname)))
219 production.walkabout(self)
220 self.body.append('\n')
221 self.body.append('\n.fi\n')
222 self.in_productionlist -= 1
223 raise nodes.SkipNode
224
225 def visit_production(self, node):
226 pass
227 def depart_production(self, node):
228 pass
229
230 # overwritten -- don't emit a warning for images
231 def visit_image(self, node):
232 if 'alt' in node.attributes:
233 self.body.append(_('[image: %s]') % node['alt'] + '\n')
234 self.body.append(_('[image]') + '\n')
235 raise nodes.SkipNode
236
237 # overwritten -- don't visit inner marked up nodes
238 def visit_reference(self, node):
239 self.body.append(self.defs['reference'][0])
240 self.body.append(node.astext())
241 self.body.append(self.defs['reference'][1])
242
243 uri = node.get('refuri', '')
244 if uri.startswith('mailto:') or uri.startswith('http:') or \
245 uri.startswith('https:') or uri.startswith('ftp:'):
246 # if configured, put the URL after the link
247 if self.builder.config.man_show_urls and \
248 node.astext() != uri:
249 if uri.startswith('mailto:'):
250 uri = uri[7:]
251 self.body.extend([
252 ' <',
253 self.defs['strong'][0], uri, self.defs['strong'][1],
254 '>'])
255 raise nodes.SkipNode
256
257 def visit_centered(self, node):
258 self.ensure_eol()
259 self.body.append('.sp\n.ce\n')
260 def depart_centered(self, node):
261 self.body.append('\n.ce 0\n')
262
263 def visit_compact_paragraph(self, node):
264 pass
265 def depart_compact_paragraph(self, node):
266 pass
267
268 def visit_highlightlang(self, node):
269 pass
270 def depart_highlightlang(self, node):
271 pass
272
273 def visit_download_reference(self, node):
274 pass
275 def depart_download_reference(self, node):
276 pass
277
278 def visit_toctree(self, node):
279 raise nodes.SkipNode
280
281 def visit_index(self, node):
282 raise nodes.SkipNode
283
284 def visit_tabular_col_spec(self, node):
285 raise nodes.SkipNode
286
287 def visit_glossary(self, node):
288 pass
289 def depart_glossary(self, node):
290 pass
291
292 def visit_acks(self, node):
293 self.ensure_eol()
294 self.body.append(', '.join(n.astext()
295 for n in node.children[0].children) + '.')
296 self.body.append('\n')
297 raise nodes.SkipNode
298
299 def visit_hlist(self, node):
300 self.visit_bullet_list(node)
301 def depart_hlist(self, node):
302 self.depart_bullet_list(node)
303
304 def visit_hlistcol(self, node):
305 pass
306 def depart_hlistcol(self, node):
307 pass
308
309 def visit_literal_emphasis(self, node):
310 return self.visit_emphasis(node)
311 def depart_literal_emphasis(self, node):
312 return self.depart_emphasis(node)
313
314 def visit_abbreviation(self, node):
315 pass
316 def depart_abbreviation(self, node):
317 pass
318
319 # overwritten: handle section titles better than in 0.6 release
320 def visit_title(self, node):
321 if isinstance(node.parent, addnodes.seealso):
322 self.body.append('.IP "')
323 return
324 elif isinstance(node.parent, nodes.section):
325 if self.section_level == 0:
326 # skip the document title
327 raise nodes.SkipNode
328 elif self.section_level == 1:
329 self.body.append('.SH %s\n' %
330 self.deunicode(node.astext().upper()))
331 raise nodes.SkipNode
332 return BaseTranslator.visit_title(self, node)
333 def depart_title(self, node):
334 if isinstance(node.parent, addnodes.seealso):
335 self.body.append('"\n')
336 return
337 return BaseTranslator.depart_title(self, node)
338
339 def visit_raw(self, node):
340 if 'manpage' in node.get('format', '').split():
341 self.body.append(node.astext())
342 raise nodes.SkipNode
343
344 def unknown_visit(self, node):
345 raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
3460
=== modified file 'debian/changelog'
--- debian/changelog 2012-10-22 20:20:35 +0000
+++ debian/changelog 2012-11-01 17:56:20 +0000
@@ -1,3 +1,12 @@
1sphinx (1.1.3+dfsg-4ubuntu5) raring; urgency=low
2
3 * Build-depend on python3-all instead of python3.
4 * debian/patches/support_python_3.3:
5 Fix various testsuite failures with Python 3.3 (LP: #1070336).
6 * Update Homepage field.
7
8 -- Dmitry Shachnev <mitya57@gmail.com> Thu, 01 Nov 2012 21:39:16 +0400
9
1sphinx (1.1.3+dfsg-4ubuntu4) raring; urgency=low10sphinx (1.1.3+dfsg-4ubuntu4) raring; urgency=low
211
3 * debian/patches/fix_manpages_generation_with_new_docutils.diff:12 * debian/patches/fix_manpages_generation_with_new_docutils.diff:
413
=== modified file 'debian/control'
--- debian/control 2012-08-21 17:45:58 +0000
+++ debian/control 2012-11-01 17:56:20 +0000
@@ -4,9 +4,9 @@
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Jakub Wilk <jwilk@debian.org>5XSBC-Original-Maintainer: Jakub Wilk <jwilk@debian.org>
6Uploaders: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>6Uploaders: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
7Homepage: http://sphinx.pocoo.org/7Homepage: http://sphinx-doc.org/
8Build-Depends: debhelper (>= 7)8Build-Depends: debhelper (>= 7)
9Build-Depends-Indep: python-all (>= 2.6.5-2~), python3 (>= 3.1.2-7~),9Build-Depends-Indep: python-all (>= 2.6.5-2~), python3-all (>= 3.1.2-7~),
10 python-setuptools (>= 0.6c5-1~), python3-setuptools,10 python-setuptools (>= 0.6c5-1~), python3-setuptools,
11 python-docutils (>= 0.7), python3-docutils (>= 0.7),11 python-docutils (>= 0.7), python3-docutils (>= 0.7),
12 python-pygments (>= 1.2), python3-pygments (>= 1.2),12 python-pygments (>= 1.2), python3-pygments (>= 1.2),
1313
=== added file 'debian/patches/fix_manpages_generation_with_new_docutils.diff'
--- debian/patches/fix_manpages_generation_with_new_docutils.diff 1970-01-01 00:00:00 +0000
+++ debian/patches/fix_manpages_generation_with_new_docutils.diff 2012-11-01 17:56:20 +0000
@@ -0,0 +1,33 @@
1Description: Fix build failure with Docutils 0.9
2Bug: https://bitbucket.org/birkenfeld/sphinx/issue/998/docutils-010-will-break-sphinx-manpage
3Author: Toshio Kuratomi <a.badger@gmail.com>
4Last-Update: 2012-10-22
5
6diff -up a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
7--- a/sphinx/writers/manpage.py 2011-11-01 00:38:44.000000000 -0700
8+++ b/sphinx/writers/manpage.py 2012-08-21 12:38:33.380808202 -0700
9@@ -72,6 +72,11 @@ class ManualPageTranslator(BaseTranslato
10 # since self.append_header() is never called, need to do this here
11 self.body.append(MACRO_DEF)
12
13+ # Overwrite admonition label translations with our own
14+ for label, translation in admonitionlabels.items():
15+ self.language.labels[label] = self.deunicode(translation)
16+
17+
18 # overwritten -- added quotes around all .TH arguments
19 def header(self):
20 tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
21@@ -193,12 +198,6 @@ class ManualPageTranslator(BaseTranslato
22 def depart_seealso(self, node):
23 self.depart_admonition(node)
24
25- # overwritten -- use our own label translations
26- def visit_admonition(self, node, name=None):
27- if name:
28- self.body.append('.IP %s\n' %
29- self.deunicode(admonitionlabels.get(name, name)))
30-
31 def visit_productionlist(self, node):
32 self.ensure_eol()
33 names = []
034
=== removed file 'debian/patches/fix_manpages_generation_with_new_docutils.diff'
--- debian/patches/fix_manpages_generation_with_new_docutils.diff 2012-10-22 20:20:35 +0000
+++ debian/patches/fix_manpages_generation_with_new_docutils.diff 1970-01-01 00:00:00 +0000
@@ -1,33 +0,0 @@
1Description: Fix build failure with Docutils 0.9
2Bug: https://bitbucket.org/birkenfeld/sphinx/issue/998/docutils-010-will-break-sphinx-manpage
3Author: Toshio Kuratomi <a.badger@gmail.com>
4Last-Update: 2012-10-22
5
6diff -up a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
7--- a/sphinx/writers/manpage.py 2011-11-01 00:38:44.000000000 -0700
8+++ b/sphinx/writers/manpage.py 2012-08-21 12:38:33.380808202 -0700
9@@ -72,6 +72,11 @@ class ManualPageTranslator(BaseTranslato
10 # since self.append_header() is never called, need to do this here
11 self.body.append(MACRO_DEF)
12
13+ # Overwrite admonition label translations with our own
14+ for label, translation in admonitionlabels.items():
15+ self.language.labels[label] = self.deunicode(translation)
16+
17+
18 # overwritten -- added quotes around all .TH arguments
19 def header(self):
20 tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
21@@ -193,12 +198,6 @@ class ManualPageTranslator(BaseTranslato
22 def depart_seealso(self, node):
23 self.depart_admonition(node)
24
25- # overwritten -- use our own label translations
26- def visit_admonition(self, node, name=None):
27- if name:
28- self.body.append('.IP %s\n' %
29- self.deunicode(admonitionlabels.get(name, name)))
30-
31 def visit_productionlist(self, node):
32 self.ensure_eol()
33 names = []
340
=== modified file 'debian/patches/series'
--- debian/patches/series 2012-10-22 20:20:35 +0000
+++ debian/patches/series 2012-11-01 17:56:20 +0000
@@ -9,3 +9,4 @@
9pygments_byte_strings.diff9pygments_byte_strings.diff
10fix_shorthandoff.diff10fix_shorthandoff.diff
11fix_manpages_generation_with_new_docutils.diff11fix_manpages_generation_with_new_docutils.diff
12support_python_3.3.diff
1213
=== added file 'debian/patches/support_python_3.3.diff'
--- debian/patches/support_python_3.3.diff 1970-01-01 00:00:00 +0000
+++ debian/patches/support_python_3.3.diff 2012-11-01 17:56:20 +0000
@@ -0,0 +1,87 @@
1Description: Fix various testsuite failures with Python 3.3
2Author: Takayuki Shimizukawa <shimizukawa@gmail.com>
3Bug: https://bitbucket.org/birkenfeld/sphinx/issue/1008/test-failures-with-python-33
4Bug-Ubuntu: https://bugs.launchpad.net/bugs/1070336
5Last-Update: 2012-11-01
6
7=== modified file 'sphinx/environment.py'
8--- a/sphinx/environment.py 2012-03-30 23:32:16 +0000
9+++ b/sphinx/environment.py 2012-11-01 17:33:08 +0000
10@@ -782,7 +782,11 @@
11 app.emit('doctree-read', doctree)
12
13 # store time of build, for outdated files detection
14- self.all_docs[docname] = time.time()
15+ # (Some filesystems have coarse timestamp resolution;
16+ # therefore time.time() is older than filesystem's timestamp.
17+ # For example, FAT32 has 2sec timestamp resolution.)
18+ self.all_docs[docname] = max(
19+ time.time(), path.getmtime(self.doc2path(docname)))
20
21 if self.versioning_condition:
22 # get old doctree
23
24=== modified file 'sphinx/ext/autodoc.py'
25--- a/sphinx/ext/autodoc.py 2012-03-30 23:32:16 +0000
26+++ b/sphinx/ext/autodoc.py 2012-11-01 17:33:08 +0000
27@@ -1098,7 +1098,7 @@
28 """
29 objtype = 'method'
30 member_order = 50
31- priority = 0
32+ priority = 1 # must be more than FunctionDocumenter
33
34 @classmethod
35 def can_document_member(cls, member, membername, isattr, parent):
36
37=== modified file 'sphinx/ext/intersphinx.py'
38--- a/sphinx/ext/intersphinx.py 2012-03-30 23:32:16 +0000
39+++ b/sphinx/ext/intersphinx.py 2012-11-01 17:33:13 +0000
40@@ -188,7 +188,17 @@
41 if update:
42 env.intersphinx_inventory = {}
43 env.intersphinx_named_inventory = {}
44- for name, _, invdata in cache.itervalues():
45+ # Duplicate values in different inventories will shadow each
46+ # other; which one will override which can vary between builds
47+ # since they are specified using an unordered dict. To make
48+ # it more consistent, we sort the named inventories and then
49+ # add the unnamed inventories last. This means that the
50+ # unnamed inventories will shadow the named ones but the named
51+ # ones can still be accessed when the name is specified.
52+ cached_vals = list(cache.itervalues())
53+ named_vals = sorted(v for v in cached_vals if v[0])
54+ unnamed_vals = [v for v in cached_vals if not v[0]]
55+ for name, _, invdata in named_vals + unnamed_vals:
56 if name:
57 env.intersphinx_named_inventory[name] = invdata
58 for type, objects in invdata.iteritems():
59
60=== modified file 'sphinx/util/__init__.py'
61--- a/sphinx/util/__init__.py 2012-03-30 23:32:16 +0000
62+++ b/sphinx/util/__init__.py 2012-11-01 17:37:41 +0000
63@@ -197,13 +197,18 @@
64 except Exception, err:
65 raise PycodeError('error importing %r' % modname, err)
66 mod = sys.modules[modname]
67- if hasattr(mod, '__loader__'):
68- try:
69- source = mod.__loader__.get_source(modname)
70+ filename = getattr(mod, '__file__', None)
71+ loader = getattr(mod, '__loader__', None)
72+ if loader and getattr(loader, 'get_filename', None):
73+ try:
74+ filename = loader.get_filename(modname)
75+ except Exception, err:
76+ raise PycodeError('error getting filename for %r' % filename, err)
77+ if filename is None and loader:
78+ try:
79+ return 'string', loader.get_source(modname)
80 except Exception, err:
81 raise PycodeError('error getting source for %r' % modname, err)
82- return 'string', source
83- filename = getattr(mod, '__file__', None)
84 if filename is None:
85 raise PycodeError('no source found for module %r' % modname)
86 filename = path.normpath(path.abspath(filename))
87
088
=== modified file 'sphinx/writers/manpage.py'
--- sphinx/writers/manpage.py 2012-10-22 20:20:35 +0000
+++ sphinx/writers/manpage.py 2012-11-01 17:56:20 +0000
@@ -72,11 +72,6 @@
72 # since self.append_header() is never called, need to do this here72 # since self.append_header() is never called, need to do this here
73 self.body.append(MACRO_DEF)73 self.body.append(MACRO_DEF)
7474
75 # Overwrite admonition label translations with our own
76 for label, translation in admonitionlabels.items():
77 self.language.labels[label] = self.deunicode(translation)
78
79
80 # overwritten -- added quotes around all .TH arguments75 # overwritten -- added quotes around all .TH arguments
81 def header(self):76 def header(self):
82 tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""77 tmpl = (".TH \"%(title_upper)s\" \"%(manual_section)s\""
@@ -198,6 +193,12 @@
198 def depart_seealso(self, node):193 def depart_seealso(self, node):
199 self.depart_admonition(node)194 self.depart_admonition(node)
200195
196 # overwritten -- use our own label translations
197 def visit_admonition(self, node, name=None):
198 if name:
199 self.body.append('.IP %s\n' %
200 self.deunicode(admonitionlabels.get(name, name)))
201
201 def visit_productionlist(self, node):202 def visit_productionlist(self, node):
202 self.ensure_eol()203 self.ensure_eol()
203 names = []204 names = []

Subscribers

People subscribed via source and target branches