From eeab4e44695982493d0f9936b3418be7cd402af5 Mon Sep 17 00:00:00 2001 From: Marius Vikhammer Date: Tue, 6 Apr 2021 11:56:11 +0800 Subject: [PATCH] docs: add google analytics tracking --- docs/conf_common.py | 3 +++ docs/extensions/google_analytics.py | 30 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/extensions/google_analytics.py diff --git a/docs/conf_common.py b/docs/conf_common.py index cf5f1418f9..c055657a71 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -59,6 +59,7 @@ extensions = ['breathe', 'extensions.html_redirects', 'extensions.toctree_filter', 'extensions.list_filter', + 'extensions.google_analytics', # Note: order is important here, events must # be registered by one extension before they can be @@ -361,6 +362,8 @@ html_static_path = ['../_static'] # Output file base name for HTML help builder. htmlhelp_basename = 'ReadtheDocsTemplatedoc' +google_analytics_id = os.environ['CI_GOOGLE_ANALYTICS_ID'] + # -- Options for LaTeX output --------------------------------------------- latex_template_dir = os.path.join(config_dir, 'latex_templates') diff --git a/docs/extensions/google_analytics.py b/docs/extensions/google_analytics.py new file mode 100644 index 0000000000..e565318169 --- /dev/null +++ b/docs/extensions/google_analytics.py @@ -0,0 +1,30 @@ +# Embeds a google analytics tracking tag in every HTML page +def setup(app): + app.add_config_value('google_analytics_id', None, 'html') + app.connect('html-page-context', google_analytics_embed) + + return {'parallel_read_safe': True, 'parallel_write_safe': True, 'version': '0.1'} + + +def google_analytics_embed(app, pagename, templatename, context, doctree): + + ga_id = app.config.google_analytics_id + if not ga_id: + return + + metatags = context.get('metatags', '') + + google_analytics_snippet = """ + + + """.format(ga_id, ga_id) + + # Prepend the google analytics to the HTML metatags (which will be passed to the sphinx templating engine) + metatags = google_analytics_snippet + metatags + context['metatags'] = metatags