diff options
Diffstat (limited to 'sphinx/transforms/post_transforms/compat.py')
-rw-r--r-- | sphinx/transforms/post_transforms/compat.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/sphinx/transforms/post_transforms/compat.py b/sphinx/transforms/post_transforms/compat.py index 9a03ff6b5..8065cf91c 100644 --- a/sphinx/transforms/post_transforms/compat.py +++ b/sphinx/transforms/post_transforms/compat.py @@ -64,19 +64,23 @@ class MathNodeMigrator(SphinxTransform): nowrap=node.get('nowrap'), docname=node.get('docname')) node.replace(alt) - else: - # case: old styled ``displaymath`` node generated by old extensions - for node in self.document.traverse(math_block): - if len(node) == 0: - warnings.warn("math node for Sphinx was replaced by docutils'. " - "Please use ``docutils.nodes.math_block`` instead.", - RemovedInSphinx30Warning) - if isinstance(node, displaymath): - newnode = nodes.math_block('', node['latex'], **node.attributes) - node.replace_self(newnode) - else: - latex = node['latex'] - node += nodes.Text(latex, latex) + elif getattr(self.app.builder, 'math_renderer_name', None) == 'unknown': + # case: math extension provides old styled math renderer + for node in self.document.traverse(nodes.math_block): + node['latex'] = node.astext() + + # case: old styled ``displaymath`` node generated by old extensions + for node in self.document.traverse(math_block): + if len(node) == 0: + warnings.warn("math node for Sphinx was replaced by docutils'. " + "Please use ``docutils.nodes.math_block`` instead.", + RemovedInSphinx30Warning) + if isinstance(node, displaymath): + newnode = nodes.math_block('', node['latex'], **node.attributes) + node.replace_self(newnode) + else: + latex = node['latex'] + node += nodes.Text(latex, latex) def setup(app): |