markdown-checker is a markdown link validation reporting tool for .md and
.ipynb files. It flags broken relative paths, broken web URLs, missing
locale segments, and missing tracking IDs, then writes the findings as a
report your CI can post back to a pull request.
Features
- Five built-in checks: broken relative paths, broken web URLs, locale segments in URLs, and tracking IDs on URLs and paths.
- Concurrent URL checking with cross-file deduplication, per-host rate
pacing, and
Retry-After/429 handling, so large repositories don't trip host rate limits. - Four report formats:
markdown,json,github-annotations, andconsole. - Error vs. warning severity - rate-limited or unverifiable links are reported but never fail your CI.
- Configuration via a
[tool.markdown-checker]table inpyproject.toml, so you don't have to repeat flags in every command or workflow file.
Installation
pip install markdown-checker
Quickstart
markdown-checker . -f check_broken_paths
🔍 Checked 42 links in 10 files.
All files are compliant with the guidelines. 🎉
When issues are found, a comment.md report is written and the command
exits with a non-zero status:
🔍 Checked 42 links in 10 files.
😭 Found 1 issues in the following files:
File 'docs/index.md', line 5
./missing.md is broken.
Using markdown-checker in GitHub Actions
Run this tool within a GitHub workflow using the action-check-markdown GitHub Action, which posts the report as a pull request comment:
- uses: john0isaac/action-check-markdown@v1.3.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
command: check_broken_paths
directory: ./
guide-url: "https://github.com/<owner>/<repo>/blob/main/CONTRIBUTING.md"
See the GitHub Actions how-to for the full workflow.
Documentation
- Tutorial - install and run your first check.
- How-to guides - configuration, rate limiting, report formats, CI.
- CLI reference - every command-line option.
- API reference - for programmatic use.
- Full documentation.
Contributing
Contributions are welcome - see the Contributing guide.
License
Metadata
Release files for markdown-checker 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markdown_checker-1.2.2.tar.gz | 161.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markdown_checker-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 207.3 kB
Release files / markdown_checker-1.2.2.tar.gz
| Download URL | markdown_checker-1.2.2.tar.gz |
|---|---|
| Size | 161.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
edcac4757cafc49786fc55429505707b9087b4c3bb6d64b3e09aae45764241fd
|
|
BLAKE2b-256 checksum How to use checksums |
7ce77d704e982d82a4ea1b7fe38083071d0defe6d61da545879f2f5840c6b0f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / markdown_checker-1.2.2-py3-none-any.whl
| Download URL | markdown_checker-1.2.2-py3-none-any.whl |
|---|---|
| Size | 45.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08f32cd783876148387e80746ed0720edddef462395b6862bef3cd0f9367e490
|
|
BLAKE2b-256 checksum How to use checksums |
84e586f3b6e2f0081657b1a3fa6072c1307829a475f0895d1c64d8a91027db71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|