Skip to main content

Better your Sphinx section IDs

Project description

Better your Sphinx section IDs.

This extension helps keep your permalinks permanent by allowing you to specify a section’s ID. As an example:

.. _v1.2.3:

v1.2.3 (2022-03-19)
-------------------

The permalink on the title will be #v1-2-3 instead of #v1-2-3-2022-03-19. When you change the section title later on, the permalink will still work.

Installation

Download and install this extension using pip:

$ pip install sphinx-better-subsection

Then add this extension in your conf.py:

extensions += ["sphinx_better_subsection"]

Usage

Add a reST internal hyperlink target (the .. _name: syntax) before your section. This extension moves that ID to the front of the IDs list, making the permalink the target’s ID instead of the generated ID from the title. When multiple are found, the last one is used.

This enhances existing reST to do the expected thing and also degrades gracefully when this extension isn’t used (such as in GitHub or online renderers).

Docutils

This package provides a docutils transformer called PreferSectionTarget (subclass of docutils.transforms.Transform) usable via:

from sphinx_better_subsection import PreferSectionTarget
document.transformer.add_transform(PreferSectionTarget)

MyST

As far as I can tell, this extension is compatible with MyST using its header target syntax (the (name)= syntax). The first example in MyST would be:

(v1.2.3)=
## v1.2.3 (2022-03-19)

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

sphinx_better_subsection-0.2.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

sphinx_better_subsection-0.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_better_subsection-0.2.tar.gz.

File metadata

File hashes

Hashes for sphinx_better_subsection-0.2.tar.gz
Algorithm Hash digest
SHA256 fe8dec536894c44fb9e1a01051b6c41111bed4b17d5241c0a3b3c8b2bd1727fb
MD5 71bd53e2ddcac65897df27c721dc23e5
BLAKE2b-256 3908d2e2e4df0b94d0863f5916ac8e9bebaa51cf5e887371e69ffe2963eafe4f

See more details on using hashes here.

File details

Details for the file sphinx_better_subsection-0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinx_better_subsection-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b24fc36a4a3effb79c49a380c5f7eb3cfbc40bd5db73804cc6f335f9b9b248bb
MD5 dccc2fb16e8fabc7c3bc440618e48337
BLAKE2b-256 6fab4b08ed7d367ebf0965151f07eefc46d669ecc8206f3d74e80e8ea4be9f61

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