diff --git a/docs/guides/Makefile b/docs/guides/Makefile index 1168ab7066..3c8a65d81c 100644 --- a/docs/guides/Makefile +++ b/docs/guides/Makefile @@ -20,3 +20,11 @@ clean: # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +update_redirects: + # This updates redirects.txt, creating redirects for any files that have moved (relative to master). + sphinx-build -b rediraffewritediff "$(SOURCEDIR)" "$(BUILDDIR)" + +check_redirects: + # Check to make sure that any files that got moved have a redirect in redirects.txt + sphinx-build -b rediraffecheckdiff "$(SOURCEDIR)" "$(BUILDDIR)" diff --git a/docs/guides/conf.py b/docs/guides/conf.py index d4d8dc7897..b18de3c48d 100644 --- a/docs/guides/conf.py +++ b/docs/guides/conf.py @@ -62,11 +62,16 @@ extensions = [ 'sphinx.ext.mathjax', 'sphinx.ext.napoleon', 'sphinxcontrib.openapi', + 'sphinxext.rediraffe', 'sphinx_design', 'code_annotations.contrib.sphinx.extensions.featuretoggles', 'code_annotations.contrib.sphinx.extensions.settings', ] +# Rediraffe related settings. +rediraffe_redirects = "redirects.txt" +rediraffe_branch = 'origin/master' + # code_annotations.(featuretoggles|settings) related settings. edxplatform_repo_url = "https://github.com/openedx/edx-platform" edxplatform_source_path = os.path.abspath( diff --git a/docs/guides/redirects.txt b/docs/guides/redirects.txt new file mode 100644 index 0000000000..140b518c1d --- /dev/null +++ b/docs/guides/redirects.txt @@ -0,0 +1,2 @@ +"featuretoggles.rst" "references/featuretoggles.rst" +"settings.rst" "references/settings.rst" diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index cebe18eb5a..64b6612828 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1615,6 +1615,7 @@ sphinx==6.2.1 # sphinx-design # sphinxcontrib-httpdomain # sphinxcontrib-openapi + # sphinxext-rediraffe sphinx-book-theme==1.0.1 # via -r requirements/edx/doc.txt sphinx-design==0.4.1 @@ -1653,6 +1654,8 @@ sphinxcontrib-serializinghtml==1.1.5 # via # -r requirements/edx/doc.txt # sphinx +sphinxext-rediraffe==0.2.7 + # via -r requirements/edx/doc.txt sqlparse==0.4.4 # via # -r requirements/edx/testing.txt diff --git a/requirements/edx/doc.in b/requirements/edx/doc.in index c4bef4d4fd..0dd7ad9aa6 100644 --- a/requirements/edx/doc.in +++ b/requirements/edx/doc.in @@ -7,3 +7,4 @@ gitpython # fetch git repo information Sphinx # Documentation builder sphinx-design # provides various responsive web-components sphinxcontrib-openapi[markdown] # Be able to render openapi schema in a sphinx project +sphinxext-rediraffe # Quickly and easily redirect when we move pages around. diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index e1ef9d0291..c5852af197 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -119,6 +119,7 @@ sphinx==6.2.1 # sphinx-design # sphinxcontrib-httpdomain # sphinxcontrib-openapi + # sphinxext-rediraffe sphinx-book-theme==1.0.1 # via -r requirements/edx/doc.in sphinx-design==0.4.1 @@ -141,6 +142,8 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx +sphinxext-rediraffe==0.2.7 + # via -r requirements/edx/doc.in stevedore==5.1.0 # via code-annotations text-unidecode==1.3