From f5b7d240030bd172fa1ddebb43994dce88eb57de Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Tue, 4 Dec 2018 01:04:53 +0900 Subject: [PATCH] refactor LaTeXTranslator; Replace _make_visit_admonition() --- CHANGES | 1 + doc/extdev/index.rst | 5 +++++ sphinx/writers/latex.py | 43 +++++++++++++++++++++++++---------------- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/CHANGES b/CHANGES index c4e1c9328..01865c9e6 100644 --- a/CHANGES +++ b/CHANGES @@ -52,6 +52,7 @@ Deprecated * ``sphinx.util.osutil.walk()`` * ``sphinx.util.pycompat.u`` * ``sphinx.writers.latex.LaTeXTranslator.babel_defmacro()`` +* ``sphinx.writers.latex.TextTranslator._make_visit_admonition()`` * ``sphinx.writers.text.TextTranslator._make_depart_admonition()`` * template variables for LaTeX template diff --git a/doc/extdev/index.rst b/doc/extdev/index.rst index 26083baa3..5dd86052a 100644 --- a/doc/extdev/index.rst +++ b/doc/extdev/index.rst @@ -187,6 +187,11 @@ The following is a list of deprecated interfaces. - 3.0 - N/A + * - ``sphinx.writers.latex.LaTeXTranslator._make_visit_admonition()`` + - 2.0 + - 3.0 + - N/A + * - ``sphinx.writers.text.TextTranslator._make_depart_admonition()`` - 2.0 - 3.0 diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index f42ef36f8..0134360c4 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -1811,35 +1811,33 @@ class LaTeXTranslator(SphinxTranslator): # type: (nodes.admonition) -> None self.body.append('\\end{sphinxadmonition}\n') - def _make_visit_admonition(name): - # type: (unicode) -> Callable[[LaTeXTranslator, nodes.Element], None] - def visit_admonition(self, node): - # type: (nodes.Element) -> None - self.body.append(u'\n\\begin{sphinxadmonition}{%s}{%s:}' % - (name, admonitionlabels[name])) - return visit_admonition + def _visit_named_admonition(self, node): + # type: (nodes.Element) -> None + label = admonitionlabels[node.tagname] + self.body.append(u'\n\\begin{sphinxadmonition}{%s}{%s:}' % + (node.tagname, label)) def _depart_named_admonition(self, node): - # type: (nodes.Node) -> None + # type: (nodes.Element) -> None self.body.append('\\end{sphinxadmonition}\n') - visit_attention = _make_visit_admonition('attention') + visit_attention = _visit_named_admonition depart_attention = _depart_named_admonition - visit_caution = _make_visit_admonition('caution') + visit_caution = _visit_named_admonition depart_caution = _depart_named_admonition - visit_danger = _make_visit_admonition('danger') + visit_danger = _visit_named_admonition depart_danger = _depart_named_admonition - visit_error = _make_visit_admonition('error') + visit_error = _visit_named_admonition depart_error = _depart_named_admonition - visit_hint = _make_visit_admonition('hint') + visit_hint = _visit_named_admonition depart_hint = _depart_named_admonition - visit_important = _make_visit_admonition('important') + visit_important = _visit_named_admonition depart_important = _depart_named_admonition - visit_note = _make_visit_admonition('note') + visit_note = _visit_named_admonition depart_note = _depart_named_admonition - visit_tip = _make_visit_admonition('tip') + visit_tip = _visit_named_admonition depart_tip = _depart_named_admonition - visit_warning = _make_visit_admonition('warning') + visit_warning = _visit_named_admonition depart_warning = _depart_named_admonition def visit_versionmodified(self, node): @@ -2663,6 +2661,17 @@ class LaTeXTranslator(SphinxTranslator): return ('%s\\def%s{%s}%s\n' % (prefix, name, definition, suffix)) + def _make_visit_admonition(name): + # type: (unicode) -> Callable[[LaTeXTranslator, nodes.Element], None] + warnings.warn('LaTeXTranslator._make_visit_admonition() is deprecated.', + RemovedInSphinx30Warning) + + def visit_admonition(self, node): + # type: (nodes.Element) -> None + self.body.append(u'\n\\begin{sphinxadmonition}{%s}{%s:}' % + (name, admonitionlabels[name])) + return visit_admonition + # Import old modules here for compatibility # They should be imported after `LaTeXTranslator` to avoid recursive import. #