From e2204cdd727ba9745253b7f3a6e1048171d1547a Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 20 Nov 2015 11:37:18 +0100 Subject: [PATCH] [FIX] 1.2 compatibility app.add_node doesn't work right for custom translators in 1.2, since mementos are using ``h:div`` reimplement that in the BootstrapTranslator. Alternative would be to monkeypatch app.add_node for Sphinx 1.2, but let's not do that... --- _extensions/odoo/__init__.py | 5 ++++- _extensions/odoo/translator.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/_extensions/odoo/__init__.py b/_extensions/odoo/__init__.py index 32d58c589..bb0cac558 100644 --- a/_extensions/odoo/__init__.py +++ b/_extensions/odoo/__init__.py @@ -8,7 +8,10 @@ import sphinx.environment import sphinx.builders.html from docutils import nodes def setup(app): - app.set_translator('html', translator.BootstrapTranslator) + if getattr(app.config, 'html_translator_class', None): + app.warn("Overriding the explicitly set html_translator_class setting", + location="odoo extension") + app.config.html_translator_class = 'odoo.translator.BootstrapTranslator' switcher.setup(app) app.add_config_value('odoo_cover_default', None, 'env') diff --git a/_extensions/odoo/translator.py b/_extensions/odoo/translator.py index 3aedd8dbe..48c5e901f 100644 --- a/_extensions/odoo/translator.py +++ b/_extensions/odoo/translator.py @@ -677,3 +677,15 @@ class BootstrapTranslator(nodes.NodeVisitor, object): # internal node def visit_substitution_definition(self, node): raise nodes.SkipNode + + # without set_translator, add_node doesn't work correctly, so the + # serialization of html_domain nodes needs to be embedded here + def visit_div(self, node): + self.body.append(self.starttag(node, 'div')) + def depart_div(self, node): + self.body.append(u'\n') + def visit_address(self, node): + self.body.append(self.starttag(node, 'address')) + def depart_address(self, node): + self.body.append(u'') + # TODO: inline elements