summaryrefslogtreecommitdiff
path: root/doc/_extensions/odoo_ext/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/_extensions/odoo_ext/__init__.py')
-rw-r--r--doc/_extensions/odoo_ext/__init__.py148
1 files changed, 0 insertions, 148 deletions
diff --git a/doc/_extensions/odoo_ext/__init__.py b/doc/_extensions/odoo_ext/__init__.py
deleted file mode 100644
index 16b4a5326f7..00000000000
--- a/doc/_extensions/odoo_ext/__init__.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from . import pygments_override
-from . import switcher
-from . import translator
-
-import sphinx.environment
-try:
- from sphinx.environment.adapters import toctree
-except ImportError:
- toctree = None
-
-import sphinx.builders.html
-from docutils import nodes
-def setup(app):
- if hasattr(app, 'set_translator'):
- app.set_translator('html', translator.BootstrapTranslator)
- else:
- 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_ext.translator.BootstrapTranslator'
-
- add_js_file = getattr(app, 'add_js_file', None) or app.add_javascript
- for f in ['jquery.min.js', 'bootstrap.js', 'doc.js', 'jquery.noconflict.js']:
- add_js_file(f)
-
- switcher.setup(app)
- app.add_config_value('odoo_cover_default', None, 'env')
- app.add_config_value('odoo_cover_external', {}, 'env')
- app.add_config_value('odoo_cover_default_external', lambda conf: conf.odoo_cover_default, 'env')
- app.connect('html-page-context', update_meta)
-
-def update_meta(app, pagename, templatename, context, doctree):
- meta = context.get('meta')
- if meta is None:
- meta = context['meta'] = {}
- meta.setdefault('banner', app.config.odoo_cover_default)
-
-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 == 'main':
- # add classes to just toplevel
- node['classes'].extend(['nav', 'navbar-nav', 'navbar-right'])
- for list_item in node.children:
- # bullet_list
- # list_item
- # compact_paragraph
- # reference
- # bullet_list
- # list_item
- # compact_paragraph
- # reference
- # no bullet_list.list_item -> don't dropdownify
- if len(list_item.children) < 2 or not list_item.children[1].children:
- continue
-
- list_item['classes'].append('dropdown')
- # list_item.compact_paragraph.reference
- link = list_item.children[0].children[0]
- link['classes'].append('dropdown-toggle')
- link.attributes['data-toggle'] = 'dropdown'
- # list_item.bullet_list
- list_item.children[1]['classes'].append('dropdown-menu')
- elif navbar is None:
- for n in node.traverse(nodes.reference):
- # list_item
- # compact_paragraph
- # reference <- starting point
- # bullet_list
- # list_item+
- # if the current list item (GP of current node) has bullet list
- # children, unref it
- list_item = n.parent.parent
- # only has a reference -> ignore
- if len(list_item.children) < 2:
- continue
- # no subrefs -> ignore
- if not list_item.children[1].children:
- continue
- # otherwise replace reference node by an inline (so it can still be styled)
- para = n.parent
- para.remove(n)
- para.append(nodes.inline('', '', *n.children))
-
-
-def resolve_content_toctree(
- environment, docname, builder, toctree, prune=True, maxdepth=0,
- titles_only=False, collapse=False, includehidden=False):
- """Alternative toctree resolution for main content: don't resolve the
- toctree, just handle it as a normal node, in the translator
- """
- return toctree
-
-class monkey(object):
- def __init__(self, obj):
- self.obj = obj
- def __call__(self, fn):
- name = fn.__name__
- old = getattr(self.obj, name)
- setattr(self.obj, name, lambda self_, *args, **kwargs: \
- fn(old, self_, *args, **kwargs))
-if toctree:
- # 1.6 and above use a new toctree adapter object for processing rather
- # than functions on the BuildEnv & al
- @monkey(toctree.TocTree)
- def resolve(old_resolve, tree, docname, *args, **kwargs):
- if docname == tree.env.config.master_doc:
- return resolve_content_toctree(tree.env, docname, *args, **kwargs)
- return old_resolve(tree, docname, *args, **kwargs)
-
-@monkey(sphinx.environment.BuildEnvironment)
-def resolve_toctree(old_resolve, self, docname, *args, **kwargs):
- """ If navbar, bootstrapify TOC to yield a navbar
-
- """
- navbar = kwargs.pop('navbar', None)
- if docname == self.config.master_doc and not navbar:
- return resolve_content_toctree(self, docname, *args, **kwargs)
- toc = old_resolve(self, docname, *args, **kwargs)
- if toc is None:
- return None
-
- navbarify(toc[0], navbar=navbar)
- return toc
-
-@monkey(sphinx.builders.html.StandaloneHTMLBuilder)
-def render_partial(old_partial, self, node):
- if isinstance(node, nodes.bullet_list) and node.children:
- # side nav?
- # remove single top-level item
- # bullet_list/0(list_item)/1(bullet_list)
- level1 = node.children[0].children
- if len(level1) > 1:
- node = level1[1]
- node['classes'].extend(['list-group', 'nav', 'text-left'])
- for n in node.traverse():
- if isinstance(n, nodes.list_item):
- n['classes'].append('list-group-item')
- elif isinstance(n, nodes.reference):
- n['classes'].append('ripple')
- else:
- node.clear()
- return old_partial(self, node)