docs: add an extension to generate redirects
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Thu, 2 Jul 2020 10:14:28 +0000 (12:14 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 7 Jul 2020 10:22:08 +0000 (10:22 +0000)
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5706>

docs/_exts/redirects.py [new file with mode: 0644]
docs/conf.py

diff --git a/docs/_exts/redirects.py b/docs/_exts/redirects.py
new file mode 100644 (file)
index 0000000..4eb7b85
--- /dev/null
@@ -0,0 +1,19 @@
+import os
+
+redirects = []
+
+def create_redirect(dst):
+    tpl = '<html><head><meta http-equiv="refresh" content="0; url={0}"><script>window.location.replace("{0}")</script></head></html>'
+    return tpl.format(dst)
+
+def create_redirects(app, docname):
+    if not app.builder.name == 'html':
+        return
+    for src, dst in redirects:
+        path = os.path.join(app.outdir, '{0}.html'.format(src))
+        url = '{0}.html'.format(dst)
+        with open(path, 'w') as f:
+            f.write(create_redirect(url))
+
+def setup(app):
+    app.connect('build-finished', create_redirects)
index 27367654d479df0be22b5721c020ea4693e9cf16..5661fe0e0ae4d391288495967850a3627be85e32 100644 (file)
@@ -38,7 +38,7 @@ sys.path.append(os.path.abspath('_exts'))
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
-extensions = ['sphinx.ext.graphviz', 'formatting']
+extensions = ['sphinx.ext.graphviz', 'formatting', 'redirects']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']