From d03b078ad6d219b9b74a5fc66673c1e455fb0fb9 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Tue, 10 Dec 2019 18:30:46 +0100 Subject: [PATCH] [IMP] config: add canonical url Inspired by odoo/odoo@958f9106dd3fe (which was lost by the way) --- _extensions/odoo/layout.html | 1 + conf.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/_extensions/odoo/layout.html b/_extensions/odoo/layout.html index 677c88b92..ffdb266c0 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 e28410652..25f6163b6 100644 --- a/conf.py +++ b/conf.py @@ -338,7 +338,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') @@ -409,6 +411,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: