summaryrefslogtreecommitdiff
path: root/doc/_themes/odoodoc/sphinx_monkeypatch.py
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2014-11-17 14:07:36 +0100
committerXavier Morel <xmo@openerp.com>2014-11-17 14:07:36 +0100
commitf302c123ea8d0b989fe6aa6517e26783f69d62b1 (patch)
tree5819a46e38e66b3f22884f3bc8a0e7241101ad41 /doc/_themes/odoodoc/sphinx_monkeypatch.py
parent956bb08433b9a963686df6553b5ca940600d2ada (diff)
[IMP] doc: indexify index
* opt-in toc navification * unhide index toctree, it's now back to a list of documents * remove text thing
Diffstat (limited to 'doc/_themes/odoodoc/sphinx_monkeypatch.py')
-rw-r--r--doc/_themes/odoodoc/sphinx_monkeypatch.py39
1 files changed, 15 insertions, 24 deletions
diff --git a/doc/_themes/odoodoc/sphinx_monkeypatch.py b/doc/_themes/odoodoc/sphinx_monkeypatch.py
index 13c3a305988..94e063e1f44 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
@@ -59,11 +55,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):
"""