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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7d8b302d3c482547a48c8133fe736cab7498e54da2a196966d79f1bafe0c670
|
|
| MD5 |
edc4ecaade32ae694f277da884e21953
|
|
| BLAKE2b-256 |
0b4a03210e2ef539141a2f619c217cdd3f9e282df6145fc45af31e08ef2f9694
|
Provenance
The following attestation bundles were made for linklint-0.4.0.tar.gz:
Publisher:
publish.yml on nedbat/linklint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linklint-0.4.0.tar.gz -
Subject digest:
d7d8b302d3c482547a48c8133fe736cab7498e54da2a196966d79f1bafe0c670 - Sigstore transparency entry: 1074841469
- Sigstore integration time:
-
Permalink:
nedbat/linklint@e1f2f96b3570dc2212ff8b40c4045bcf4905034b -
Branch / Tag:
refs/tags/0.4.0 - Owner: https://github.com/nedbat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1f2f96b3570dc2212ff8b40c4045bcf4905034b -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ec2a0dadfec211e29385f769dc1a18230b5f7a57dc877bdb31444e4ee9397d5
|
|
| MD5 |
0912737ae683bf7b891fe0e881abb535
|
|
| BLAKE2b-256 |
81a31843567b026462bdf5144a50805ffda99ff8ef84610a0fb23da20adb938a
|
Provenance
The following attestation bundles were made for linklint-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on nedbat/linklint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linklint-0.4.0-py3-none-any.whl -
Subject digest:
5ec2a0dadfec211e29385f769dc1a18230b5f7a57dc877bdb31444e4ee9397d5 - Sigstore transparency entry: 1074841506
- Sigstore integration time:
-
Permalink:
nedbat/linklint@e1f2f96b3570dc2212ff8b40c4045bcf4905034b -
Branch / Tag:
refs/tags/0.4.0 - Owner: https://github.com/nedbat
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1f2f96b3570dc2212ff8b40c4045bcf4905034b -
Trigger Event:
push
-
Statement type: