Tool for finding broken references and links in Markdown files.
Project description
RefCheck
RefCheck is a simple tool for finding broken references and links in Markdown files.
usage: refcheck [OPTIONS] [PATH ...]
positional arguments:
PATH Markdown files or directories to check
options:
-h, --help show this help message and exit
-e, --exclude [ ...] Files or directories to exclude
-cm, --check-remote Check remote references (HTTP/HTTPS links)
-nc, --no-color Turn off colored output
-v, --verbose Enable verbose output
--allow-absolute Allow absolute path references like [ref](/path/to/file.md)
Features
- 🔍 Comprehensive Reference Detection - Find and validate various reference patterns in Markdown files
- ❌ Broken Link Highlighting - Quickly identify broken references with clear error messages
- 📁 File Path Validation - Support for both absolute and relative file paths to any file type
- 🌐 Remote URL Checking - Validate external HTTP/HTTPS links (optional with
--check-remote) - 🎯 Header Reference Validation - Verify links to specific sections within Markdown files
- 🛠️ User-Friendly CLI - Simple and intuitive command-line interface
- ⚙️ CI/CD Ready - Perfect for automated quality checks in your documentation workflows
- 🎨 Colored Output - Clear, color-coded results for easy scanning (disable with
--no-color) - 📊 Detailed Reporting - Summary statistics and line-by-line reference validation
- 🚀 Pre-commit Integration - Available as a pre-commit hook for automated validation
Installation
RefCheck is available on PyPI:
pip install refcheck
Examples
$ refcheck README.md
[+] 1 Markdown files to check.
- README.md
[+] FILE: README.md...
README.md:3: #introduction - OK
README.md:5: #installation - OK
README.md:6: #getting-started - OK
Reference check complete.
============================| Summary |=============================
🎉 No broken references!
====================================================================
$ refcheck . --check-remote
[+] Searching for markdown files in C:\Users\flumi3\github\refcheck ...
[+] 2 Markdown files to check.
- tests\sample_markdown.md
- docs\Understanding-Markdown-References.md
[+] FILE: tests\sample_markdown.md...
tests\sample_markdown.md:39: /img/image.png - BROKEN
tests\sample_markdown.md:52: https://www.openai.com/logo.png - BROKEN
[+] FILE: docs\Understanding-Markdown-References.md...
docs\Understanding-Markdown-References.md:42: #local-file-references - OK
Reference check complete.
============================| Summary |=============================
[!] 2 broken references found:
tests\sample_markdown.md:39: /img/image.png
tests\sample_markdown.md:52: https://www.openai.com/logo.png
====================================================================
Pre-commit Hook
RefCheck is also available as pre-commit hook!
- repo: https://github.com/flumi3/refcheck
rev: v0.4.1
hooks:
- id: refcheck
args: ["docs/", "-e", "docs/filetoexclude.md"] # e.g. scan the docs/ folder and exclude a file
For more advanced configuration options, see the Integration Guide.
Contributing
Contributions are welcome!
Please see CONTRIBUTING.md for:
- Development setup instructions
- Commit message conventions
- Code quality standards
- Testing requirements
- Pull request guidelines
Documentation
For more detailed information, check out the documentation:
- CLI Reference - Complete command-line options and usage
- Integration Guide - CI/CD and workflow integration
- Examples - Real-world usage examples
License
This project is licensed under the MIT License - see the LICENSE file for details.
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 refcheck-0.4.1.tar.gz.
File metadata
- Download URL: refcheck-0.4.1.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
379b7372b961fbde54485aacc1b3b636b4f6f4dcecfc960a7ac16f2dc710cd68
|
|
| MD5 |
afc3f60663e4af422907aed52d4dc478
|
|
| BLAKE2b-256 |
98b6ffe1c97096c18d145ea1152685dffe73ddb7f8cb394e78872de18af287e4
|
Provenance
The following attestation bundles were made for refcheck-0.4.1.tar.gz:
Publisher:
ci-cd.yml on flumi3/markdown-refcheck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
refcheck-0.4.1.tar.gz -
Subject digest:
379b7372b961fbde54485aacc1b3b636b4f6f4dcecfc960a7ac16f2dc710cd68 - Sigstore transparency entry: 763307026
- Sigstore integration time:
-
Permalink:
flumi3/markdown-refcheck@04c4f46d0f33a605f799d3d8c6bf67fa62a633fc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flumi3
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@04c4f46d0f33a605f799d3d8c6bf67fa62a633fc -
Trigger Event:
push
-
Statement type:
File details
Details for the file refcheck-0.4.1-py3-none-any.whl.
File metadata
- Download URL: refcheck-0.4.1-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b347b75c904f0ce09a5539f684f4cfc033aafba215b3e911630e9b3fe35e0020
|
|
| MD5 |
bfafe6b51e5bce56d384639b967277c4
|
|
| BLAKE2b-256 |
f44af4e5143b0a8a646dea16fae299174c0e63a7c52e8055b94346d99fa24286
|
Provenance
The following attestation bundles were made for refcheck-0.4.1-py3-none-any.whl:
Publisher:
ci-cd.yml on flumi3/markdown-refcheck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
refcheck-0.4.1-py3-none-any.whl -
Subject digest:
b347b75c904f0ce09a5539f684f4cfc033aafba215b3e911630e9b3fe35e0020 - Sigstore transparency entry: 763307027
- Sigstore integration time:
-
Permalink:
flumi3/markdown-refcheck@04c4f46d0f33a605f799d3d8c6bf67fa62a633fc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/flumi3
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci-cd.yml@04c4f46d0f33a605f799d3d8c6bf67fa62a633fc -
Trigger Event:
push
-
Statement type: