From bdece44b8d919931de74d107706e2d79a4f5e02a Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 22 Sep 2020 14:55:36 +0200 Subject: [PATCH] Prevent the compatibility notice from being the `meta description` Adding the compatibility notice via JavaScript prevents the `meta description` Sphinx extension from taking the notice as part of the description. This also changes the redirect URL to point to the page the user is currently reading instead of always pointing to the homepage. --- _static/js/custom.js | 26 ++++++++++++++++++++++++++ conf.py | 21 --------------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/_static/js/custom.js b/_static/js/custom.js index 40e8bce568c..dca5646b032 100644 --- a/_static/js/custom.js +++ b/_static/js/custom.js @@ -1,3 +1,9 @@ + +// Set this to `true` when the `latest` branch is significantly incompatible with the +// current `stable` branch, which can lead to confusion for users that land on +// `latest` instead of `stable`. +const inDev = true; + // Handle page scroll and adjust sidebar accordingly. // Each page has two scrolls: the main scroll, which is moving the content of the page; @@ -202,6 +208,26 @@ $(document).ready(() => { registerOnScrollEvent(mediaQuery); }); + if (inDev) { + // Add a compatibility notice using JavaScript so it doesn't end up in the + // automatically generated `meta description` tag. + const url = window.location.href.replace('/latest/', '/stable/'); + document.querySelector('div[itemprop="articleBody"]').insertAdjacentHTML('afterbegin', ` +
+

Attention

+

+ You are reading the latest + (unstable) version of this documentation, which may document features not available + or compatible with Godot 3.2.x. +

+

+ See this page + for the stable version of this documentation. +

+
+ `); + } + // Load instant.page to prefetch pages upon hovering. This makes navigation feel // snappier. The script is dynamically appended as Read the Docs doesn't have // a way to add scripts with a "module" attribute. diff --git a/conf.py b/conf.py index c96e129e36e..37a6e416eab 100644 --- a/conf.py +++ b/conf.py @@ -52,11 +52,6 @@ # The full version, including alpha/beta/rc tags release = version -# Set this True when the `latest` branch is significantly incompatible with the -# current `stable` branch, which can lead to confusion for users that land on -# `latest` instead of `stable`. -in_dev = True - # Parse Sphinx tags passed from RTD via environment env_tags = os.getenv("SPHINX_TAGS") if env_tags is not None: @@ -235,22 +230,6 @@ def godot_get_image_filename_for_language(filename, env): sphinx.util.i18n.get_image_filename_for_language = godot_get_image_filename_for_language -# Read the Docs adds a note at the top of the page when reading documentation -# for an old stable version, but not when reading the latest unstable version. -# We want to add a warning note as the `latest` documentation may not always -# apply to the current `stable` version. -if in_dev: - rst_prolog = """ -.. attention:: - You are reading the ``latest`` (unstable) version of this documentation, - which may document features not available or compatible with Godot 3.2.x. - - See `this page `__ - for the stable version of this documentation. -""".format( - locale=language, - ) - # Couldn't find a way to retrieve variables nor do advanced string # concat from reST, so had to hardcode this in the "epilog" added to # all pages. This is used in index.rst to display the Weblate badge.