Skip to main content

A Sphinx extension to remove needless links

Project description

Linklint checks .rst files for excessive links to references.

It also can be used as a Sphinx extension to automatically unlink references that should not be links.

Checks

Linklint has two different checks:

  • self: find references that link to their own section. For example, in the description of a class, use :class: referring to itself. These should not be links since they will not take you someplace new.

  • paradup: find multiple identical references within a single paragraph. The first should be a link, but subsequent references don’t need to be links, they are just distractions.

Sphinx extension

To use linklint as a Sphinx extension, add it to the extensions list in your conf.py file:

extensions = [
    # .. probably other extensions are already here..
    "linklint.ext",
]

During the build process, linklint will run all its checks and unlink any reference it considers excessive.

Command-line use

You can use linklint as a command-line linter:

% linklint --help
usage: linklint [-h] [--check CHECK] [--fix] files [files ...]

positional arguments:
  files          RST files to lint

options:
  -h, --help     show this help message and exit
  --check CHECK  comma-separated checks to run (self, paradup, all)
  --fix          Fix the issues in place

This can be useful to see what linklint considers excessive, or to modify .rst files to unlink excessive references. Linklint unlinks references by changing :func:`foo` to :func:`!foo`.

If you agree with linklint’s decisions, the Sphinx extension is a better option, since it doesn’t require changing the source files, and doesn’t hard-code the decisions.

Changes

v0.4.0 (2026-03-10)

A number of roles (:ref:, :doc: and others) were being unlinked when they seemed excessive, but shouldn’t have been. They are explicit references to other parts of the documentation, so should never be removed. This is now fixed.

v0.3.1 (2026-03-01)

Published to PyPI.

v0.3.0 (2026-02-28)

Methods are associated with classes properly in a number of ways.

The Sphinx extension now displays the number of references that were unlinked. The CPython docs report 3612 references unlinked.

v0.2.0 (2026-02-22)

Now available as a Sphinx extension. Instead of changing .rst source files, the excessive links are automatically unlinked in the generated documentation.

v0.1.0 (2026-02-21)

First version: works as a linter with --check and --fix to change .rst source files.

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

linklint-0.4.0.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linklint-0.4.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file linklint-0.4.0.tar.gz.

File metadata

  • Download URL: linklint-0.4.0.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linklint-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d7d8b302d3c482547a48c8133fe736cab7498e54da2a196966d79f1bafe0c670
MD5 edc4ecaade32ae694f277da884e21953
BLAKE2b-256 0b4a03210e2ef539141a2f619c217cdd3f9e282df6145fc45af31e08ef2f9694

See more details on using hashes here.

Provenance

The following attestation bundles were made for linklint-0.4.0.tar.gz:

Publisher: publish.yml on nedbat/linklint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file linklint-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: linklint-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linklint-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec2a0dadfec211e29385f769dc1a18230b5f7a57dc877bdb31444e4ee9397d5
MD5 0912737ae683bf7b891fe0e881abb535
BLAKE2b-256 81a31843567b026462bdf5144a50805ffda99ff8ef84610a0fb23da20adb938a

See more details on using hashes here.

Provenance

The following attestation bundles were made for linklint-0.4.0-py3-none-any.whl:

Publisher: publish.yml on nedbat/linklint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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