diff options
| author | Xavier Morel <xmo@openerp.com> | 2014-09-04 14:40:20 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2014-09-04 14:43:55 +0200 |
| commit | bb007dd04097bd3132cafea8f393c0d9bbfdeb7f (patch) | |
| tree | 594582a964dd4c7854d72982703bfd6413bc0a31 /doc/conf.py | |
| parent | 39208e1f42e058175995e07279d1a13a9377e484 (diff) | |
[ADD] support for a version switcher in odoo theme thing
needs beauty input
Diffstat (limited to 'doc/conf.py')
| -rw-r--r-- | doc/conf.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/doc/conf.py b/doc/conf.py index a55a48c0a96..f563a28cf1c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -177,13 +177,40 @@ def setup(app): app.connect('html-page-context', canonicalize) app.add_config_value('canonical_root', None, 'env') app.add_config_value('canonical_branch', 'master', 'env') + + app.connect('html-page-context', versionize) + app.add_config_value('versions', '', 'env') + def canonicalize(app, pagename, templatename, context, doctree): + """ Adds a 'canonical' URL for the current document in the rendering + context. Requires the ``canonical_root`` setting being set. The canonical + branch is ``master`` but can be overridden using ``canonical_branch``. + """ if not app.config.canonical_root: return - context['canonical'] = "{canonical_url}{canonical_branch}/{canonical_page}".format( - canonical_url=app.config.canonical_root, - canonical_branch=app.config.canonical_branch, + context['canonical'] = _build_url( + app.config.canonical_root, app.config.canonical_branch, pagename) + +def versionize(app, pagename, templatename, context, doctree): + """ Adds a version switcher below the menu, requires ``canonical_root`` + and ``versions`` (an ordered, space-separated lists of all possible + versions). + """ + if not (app.config.canonical_root and app.config.versions): + return + + context['versions'] = [ + (vs, _build_url(app.config.canonical_root, vs, pagename)) + for vs in app.config.versions.split(',') + if vs != app.config.version + ] + +def _build_url(root, branch, pagename): + return "{canonical_url}{canonical_branch}/{canonical_page}".format( + canonical_url=root, + canonical_branch=branch, canonical_page=(pagename + '.html').replace('index.html', '') .replace('index/', ''), ) + |
