diff --git a/sphinx/ext/mathbase.py b/sphinx/ext/mathbase.py index 4053dbe45..04e940a27 100644 --- a/sphinx/ext/mathbase.py +++ b/sphinx/ext/mathbase.py @@ -12,8 +12,8 @@ from docutils import nodes, utils from docutils.parsers.rst import directives +from sphinx.writers import texinfo from sphinx.util.compat import Directive -from sphinx.writers.texinfo import escape class math(nodes.Inline, nodes.TextElement): @@ -124,7 +124,7 @@ def man_visit_eqref(self, node): def texinfo_visit_math(self, node): - self.body.append('@math{' + escape(node['latex']) + '}') + self.body.append('@math{' + texinfo.escape_arg(node['latex']) + '}') raise nodes.SkipNode def texinfo_visit_displaymath(self, node): diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index 6ea3a3fe4..f7b3a9bb6 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -175,6 +175,7 @@ class TexinfoTranslator(nodes.NodeVisitor): self.short_ids = {} self.body = [] + self.context = [] self.previous_section = None self.section_level = 0 self.seen_title = False @@ -1183,3 +1184,34 @@ class TexinfoTranslator(nodes.NodeVisitor): self.add_text("", fresh=1) def depart_desc_content(self, node): pass + + def visit_inline(self, node): + # stub + pass + def depart_inline(self, node): + pass + + def visit_abbreviation(self, node): + self.add_text('@abbr{') + if node.hasattr('explanation'): + self.context.append(', %s}' % escape_arg(node['explanation'])) + else: + self.context.append('}') + def depart_abbreviation(self, node): + self.body.append(self.context.pop()) + + def visit_download_reference(self, node): + pass + def depart_download_reference(self, node): + pass + + def visit_hlist(self, node): + # stub + self.visit_bullet_list(node) + def depart_hlist(self, node): + self.depart_bullet_list(node) + + def visit_hlistcol(self, node): + pass + def depart_hlistcol(self, node): + pass diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py index 295097ece..2b2c8efdf 100644 --- a/tests/test_build_texinfo.py +++ b/tests/test_build_texinfo.py @@ -36,10 +36,10 @@ def test_texinfo(app): app.builder.build_all() texinfo_warnings = texinfo_warnfile.getvalue().replace(os.sep, '/') texinfo_warnings_exp = TEXINFO_WARNINGS % {'root': app.srcdir} - #assert re.match(texinfo_warnings_exp + '$', texinfo_warnings), \ - # 'Warnings don\'t match:\n' + \ - # '--- Expected (regex):\n' + texinfo_warnings_exp + \ - # '--- Got:\n' + texinfo_warnings + assert re.match(texinfo_warnings_exp + '$', texinfo_warnings), \ + 'Warnings don\'t match:\n' + \ + '--- Expected (regex):\n' + texinfo_warnings_exp + \ + '--- Got:\n' + texinfo_warnings # now, try to run makeinfo over it cwd = os.getcwd() os.chdir(app.outdir)