diff --git a/doc/_extensions/odoo/__init__.py b/doc/_extensions/odoo/__init__.py index 125c2f55afb05..e2600d744df62 100644 --- a/doc/_extensions/odoo/__init__.py +++ b/doc/_extensions/odoo/__init__.py @@ -1,13 +1,15 @@ # -*- coding: utf-8 -*- -from . import switcher from . import pygments_override -import collections +from . import switcher +from . import translator import sphinx.environment import sphinx.builders.html from docutils import nodes def setup(app): + app.set_translator('html', translator.BootstrapTranslator) + switcher.setup(app) app.add_config_value('odoo_cover_default', None, 'env') app.add_config_value('odoo_cover_external', {}, 'env') diff --git a/doc/_extensions/odoo/layout.html b/doc/_extensions/odoo/layout.html index 0f9661ba6ded8..c14eab647eb09 100644 --- a/doc/_extensions/odoo/layout.html +++ b/doc/_extensions/odoo/layout.html @@ -46,7 +46,7 @@ {%- block header -%} - + diff --git a/doc/_extensions/odoo/translator.py b/doc/_extensions/odoo/translator.py index 681d4456e2fd8..6bb041e232374 100644 --- a/doc/_extensions/odoo/translator.py +++ b/doc/_extensions/odoo/translator.py @@ -364,6 +364,18 @@ def depart_caption(self, node): def visit_legend(self, node): pass def depart_legend(self, node): pass + def visit_line(self, node): + self.body.append(self.starttag(node, 'div', CLASS='line')) + # ensure the line still takes the room it needs + if not len(node): self.body.append(u'') + def depart_line(self, node): + self.body.append(u'') + + def visit_line_block(self, node): + self.body.append(self.starttag(node, 'div', CLASS='line-block')) + def depart_line_block(self, node): + self.body.append(u'') + def visit_table(self, node): self.body.append(self.starttag(node, 'table', CLASS='table')) def depart_table(self, node): @@ -591,23 +603,31 @@ def visit_toctree(self, node): entries = [(title, ref)] if not toc else ((e[0], e[1]) for e in toc[0]['entries']) for subtitle, subref in entries: + baseuri = self.builder.get_target_uri(node['parent']) + if subref in env.metadata: cover = env.metadata[subref].get('banner', conf.odoo_cover_default) elif subref in conf.odoo_cover_external: cover = conf.odoo_cover_external[subref] else: cover = conf.odoo_cover_default_external - banner = '_static/' + cover - base, ext = os.path.splitext(banner) - small = "{}.small{}".format(base, ext) - if os.path.isfile(urllib.url2pathname(small)): - banner = small - baseuri = self.builder.get_target_uri(node['parent']) + + if cover: + banner = '_static/' + cover + base, ext = os.path.splitext(banner) + small = "{}.small{}".format(base, ext) + if os.path.isfile(urllib.url2pathname(small)): + banner = small + style = u"background-image: url('{}')".format( + util.relative_uri(baseuri, banner) or '#') + else: + style = u'' + self.body.append(u""" - + {title} @@ -615,7 +635,7 @@ def visit_toctree(self, node): """.format( link=subref if util.url_re.match(subref) else util.relative_uri( baseuri, self.builder.get_target_uri(subref)), - banner=util.relative_uri(baseuri, banner) or '#', + style=style, title=subtitle if subtitle else util.nodes.clean_astext(env.titles[subref]), )) diff --git a/doc/conf.py b/doc/conf.py index 8ae5728231469..bffee53df330f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -92,7 +92,6 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'odoo' -html_translator_class = 'odoo.translator.BootstrapTranslator' odoo_cover_default = 'banners/installing_odoo.jpg' odoo_cover_external = {