Skip to main content

Sphinx Extension that redirects non-existent pages to working pages.

Project description

sphinxext-rediraffe

ci Code style: black

Sphinx Extension to redirect files

Rediraffe

This sphinx extension redirects non-existent pages to working pages. Additionally, a builder is provided to check that deleted/renamed files in your git repo are redirected.

Rediraffe supports the html and dirhtml builders.

Note: Chained redirects will be resolved. For example, if a config has 6 chained redirects, all 6 links will redirect directly to the final link. The end user will never experience more than 1 redirection.

Installation

python -m pip install sphinxext-rediraffe

Usage

Add sphinxext.rediraffe to your extensions list in your conf.py

extensions = [
   sphinxext.rediraffe,
]

To check that deleted/renamed files in your git repo are in your redirects,

  1. Make sure rediraffe_branch and rediraffe_redirects are set in conf.py.
  2. Run the rediraffecheckdiff builder.

Options

These values are placed in the conf.py of your sphinx project.

  • rediraffe_branch

    • Required for rediraffecheckdiff builder. The branch or commit to diff against.
  • rediraffe_redirects

    • Required. A filename or dict containing redirects
  • rediraffe_template

    • Optional. A jinja template to use to render the inserted redirecting files. If not specified, a default template will be used. This template will only be accessed after the html/htmldir builder is finished; Therefore, this file may be generated as part of your build.
    • variables available to rediraffe_template:
      • from_file - the file being redirected as written in rediraffe_redirects.
      • to_file - the destination file that from_file is redirected to as written in rediraffe_redirects.
      • from_url - the path to from_url's html file (built by rediraffe) relative to the outdir.
      • to_url - the path to to_url's built html file relative to the outdir.
      • rel_url - the relative path from from_url to to_url.

Example Config

redirects only (file)

conf.py:

rediraffe_redirects = "redirects.txt"

redirects.txt:

another.rst index.rst
another2.rst another.rst

redirects only (dict)

conf.py:

rediraffe_redirects = {
    "another.rst": "index.rst",
    "another2.rst": "another.rst",
}

redirects + diff checker

conf.py:

rediraffe_redirects = "redirects.txt"
rediraffe_branch = "master~1"

redirects with jinja template

conf.py:

rediraffe_redirects = "redirects.txt"
rediraffe_template = "template.html"

template.html:

<html>
    <body>
        <p>Your destination is {{to_url}}</p>
    </body>
</html>

A complex example can be found at tests/roots/ext/.

Testing

Rediraffe uses pytest for testing. To run tests:

  1. Install this package
  2. Install test dependencies
    python -m pip install -r test-requirements.txt
    
  3. Navigate to the tests directory and run
    python -m pytest --headless
    

The --headless flag ensures that a browser window does not open during browser backed selenium testing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinxext-rediraffe-0.1.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

sphinxext_rediraffe-0.1.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file sphinxext-rediraffe-0.1.0.tar.gz.

File metadata

  • Download URL: sphinxext-rediraffe-0.1.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for sphinxext-rediraffe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 11b2c821b51de9901b703fa1fb1dc035dd58382e1306740f5796901b4fedfa89
MD5 a755162120adf86b0237261d53a90c72
BLAKE2b-256 9e41bbe81a4617b0fda9d3cfa6211ac95a85be5ec12f44b6c7fce661a157a214

See more details on using hashes here.

File details

Details for the file sphinxext_rediraffe-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sphinxext_rediraffe-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for sphinxext_rediraffe-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7085fd63bd0d1081cf55c555e8dad1d0ebbfb6f2692bc3185528cdf3776f544
MD5 9b3b60e733fd187afb3fa6a4a96752f9
BLAKE2b-256 0d3b1979b53ebdde33491543973cf1c8e005f6ef6bea82f4ba1da077947194fc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page