rust-lang / rust-lang/rust-clippy
Lint for likely-malformed reference style links
Open
Nobody has claimed this yet.
A-documentation
A-lint
good first issue
L-correctness
T-AST
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
I often come across the situation in markdown when I accidentally write the following:
[useful text][reference]
[reference](<example.com>)
This, though it might look like a reference style link, is not:
[useful text][reference]
The correct syntax is as follows:
[useful text][reference]
[reference]: <example.com>
Clippy could lint against this likely-malformed reference link.
Notes:
- This lint should only trigger if
[reference](<link>)is on a line on its own (e.g. would be a valid reference target) andreferencecould be a valid reference key. - This lint should not trigger if there is any escaping of the in-text part of the reference which makes it not a valid reference link, even if it renders [like][so] in the output.
- I don't think [bracketed][words] would ever be desired except in a code block about markdown, so this lint shouldn't have a lot of real-world false positives.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by locating the lint registration and markdown parsing tests, then use the examples and notes to define the matching cases; done means detecting standalone likely reference targets while excluding escaped in-text references.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100