diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-11-17 17:31:12 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-11-17 17:31:12 +0100 |
| commit | d64fe8279b4a1d3083a87b7e5fb211ddbbae50ca (patch) | |
| tree | 207e10e9f6f69206862c6329a5dcd25be5d15f9b /doc/_themes/odoodoc/sphinx_monkeypatch.py | |
| parent | b2563509ffd89fdadc1256cb8118d7106f36e2e3 (diff) | |
| parent | c92e70b929376ba742ea17187ec521cf706302e5 (diff) | |
[MERGE] forward port of branch 8.0 up to c92e70b
Diffstat (limited to 'doc/_themes/odoodoc/sphinx_monkeypatch.py')
| -rw-r--r-- | doc/_themes/odoodoc/sphinx_monkeypatch.py | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/doc/_themes/odoodoc/sphinx_monkeypatch.py b/doc/_themes/odoodoc/sphinx_monkeypatch.py index 13c3a305988..182fef89c8d 100644 --- a/doc/_themes/odoodoc/sphinx_monkeypatch.py +++ b/doc/_themes/odoodoc/sphinx_monkeypatch.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- import sphinx.roles import sphinx.environment -from sphinx.builders.html import StandaloneHTMLBuilder from sphinx.writers.html import HTMLTranslator from docutils.writers.html4css1 import HTMLTranslator as DocutilsTranslator @@ -9,27 +8,17 @@ def patch(): # navify toctree (oh god) @monkey(sphinx.environment.BuildEnvironment) def resolve_toctree(old_resolve, self, *args, **kwargs): - """ If main_navbar, bootstrapify TOC to yield a navbar + """ If navbar, bootstrapify TOC to yield a navbar """ - main_navbar = kwargs.pop('main_navbar', False) + navbar = kwargs.pop('navbar', None) toc = old_resolve(self, *args, **kwargs) if toc is None: return None - navbarify(toc[0], main_navbar=main_navbar) + navbarify(toc[0], navbar=navbar) return toc - @monkey(StandaloneHTMLBuilder) - def _get_local_toctree(old_local, self, *args, **kwargs): - """ _get_local_toctree generates a documentation toctree for the local - document (?), called from handle_page - """ - # so can call toctree(main_navbar=False) - d = {'main_navbar': True} - d.update(kwargs) - return old_local(self, *args, **d) - # monkeypatch visit_table to remove border and add .table HTMLTranslator.visit_table = visit_table # disable colspec crap @@ -37,11 +26,18 @@ def patch(): # copy data- attributes straight from source to dest HTMLTranslator.starttag = starttag_data -def navbarify(node, main_navbar=False): - # add classes to toplevel - if not main_navbar: - navify([node]) - else: +def navbarify(node, navbar=None): + """ + :param node: toctree node to navbarify + :param navbar: Whether this toctree is a 'main' navbar, a 'side' navbar or + not a navbar at all + """ + if navbar == 'side': + for n in node.traverse(): + if n.tagname == 'bullet_list': + n['classes'].append('nav') + elif navbar == 'main': + # add classes to just toplevel node['classes'].extend(['nav', 'navbar-nav', 'navbar-right']) for list_item in node.children: # bullet_list @@ -52,6 +48,10 @@ def navbarify(node, main_navbar=False): # list_item # compact_paragraph # reference + # no bullet_list.list_item -> don't dropdownify + if not list_item.children[1].children: + return + list_item['classes'].append('dropdown') # list_item.compact_paragraph.reference link = list_item.children[0].children[0] @@ -59,11 +59,6 @@ def navbarify(node, main_navbar=False): link.attributes['data-toggle'] = 'dropdown' # list_item.bullet_list list_item.children[1]['classes'].append('dropdown-menu') -def navify(nodes): - for node in nodes: - if node.tagname == 'bullet_list': - node['classes'].append('nav') - navify(node.children) def visit_table(self, node): """ |
