diff --git a/_extensions/odoo/layout.html b/_extensions/odoo/layout.html index 16e27d93b..4819928e2 100644 --- a/_extensions/odoo/layout.html +++ b/_extensions/odoo/layout.html @@ -29,6 +29,7 @@ {% for code, url in language_codes %} {%- endfor %} + {{ super() }} {%- endblock -%} diff --git a/conf.py b/conf.py index abb0a508a..1a48f70e6 100644 --- a/conf.py +++ b/conf.py @@ -328,7 +328,9 @@ def setup(app): app.add_javascript('coa-valuation-continental.js') app.add_javascript('coa-valuation-anglo-saxon.js') + 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', analytics) app.add_config_value('google_analytics_key', '', 'env') @@ -399,6 +401,16 @@ def localize(app, pagename, templatename, context, doctree): for la in app.config.languages.split(',') ] +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'] = _build_url( + app.config.canonical_root, app.config.canonical_branch, pagename) def _build_url(root, branch, pagename): if not branch: