From 64a4ba9e1ceeccbc7adeae368b5bc2553be88610 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 2 Jul 2020 12:14:28 +0200 Subject: [PATCH] docs: add an extension to generate redirects Reviewed-by: Eric Engestrom Part-of: --- docs/_exts/redirects.py | 19 +++++++++++++++++++ docs/conf.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 docs/_exts/redirects.py diff --git a/docs/_exts/redirects.py b/docs/_exts/redirects.py new file mode 100644 index 00000000000..4eb7b855b58 --- /dev/null +++ b/docs/_exts/redirects.py @@ -0,0 +1,19 @@ +import os + +redirects = [] + +def create_redirect(dst): + tpl = '' + 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) diff --git a/docs/conf.py b/docs/conf.py index 27367654d47..5661fe0e0ae 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -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'] -- 2.30.2