Em Thu, 27 Apr 2023 13:12:39 +0300 Costa Shulyupin <costa.shul@xxxxxxxxxx> escreveu: > Due to a recent reorganization of 'CPU Architectures', the links to > the documentation from external resources were rendered invalid. > This is a common challenge when attempting to make changes > while maintaining backward compatibility. To address this issue, > a commit has been made which uses sphinx extension to seamlessly > redirect users from the old location of the page to the new one. > > > Signed-off-by: Costa Shulyupin <costa.shul@xxxxxxxxxx> > --- > Documentation/conf.py | 8 +++++++- > Documentation/sphinx/requirements.txt | 1 + > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/Documentation/conf.py b/Documentation/conf.py > index 37314afd1ac8..514bfe6a8166 100644 > --- a/Documentation/conf.py > +++ b/Documentation/conf.py > @@ -55,7 +55,13 @@ needs_sphinx = '1.7' > extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', > 'kfigure', 'sphinx.ext.ifconfig', 'automarkup', > 'maintainers_include', 'sphinx.ext.autosectionlabel', > - 'kernel_abi', 'kernel_feat'] > + 'kernel_abi', 'kernel_feat', > + 'sphinx_reredirects', > +] Besides Jon's comment, if we add something like this, please make such extension optional (in a similar way to what we do for sphinx.ext.imgmath), as this is only pertinent on websites meant to provide the Kernel documentation. > + > +redirects = { > + "arch.html": "arch/index.html", > +} I suspect that maintaining a list of all redirects here can be painful, as, from time to time, we see documentation churns. We should likely need some script to check what renames happened since a previous Kernel version, generating it automatically. Again, as this is something that only applies to websites hosting documentation, IMO the best would be to have a separate file ("conf_redirects.py") included on conf.py, that will be auto-generated by a script that would receive, as input, the initial Kernel version where redirects should be preserved. Regards, Mauro > > if major >= 3: > if (major > 3) or (minor > 0 or patch >= 2): > diff --git a/Documentation/sphinx/requirements.txt b/Documentation/sphinx/requirements.txt > index 335b53df35e2..0b067e985edb 100644 > --- a/Documentation/sphinx/requirements.txt > +++ b/Documentation/sphinx/requirements.txt > @@ -1,3 +1,4 @@ > # jinja2>=3.1 is not compatible with Sphinx<4.0 > jinja2<3.1 > Sphinx==2.4.4 > +sphinx_reredirects