A markdown link validation reporting tool.
Project description
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.1.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, including running check_broken_urls (not yet
supported by the wrapper action) directly as a step.
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
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 markdown_checker-1.2.0.tar.gz.
File metadata
- Download URL: markdown_checker-1.2.0.tar.gz
- Upload date:
- Size: 161.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fd4023b6c5010ea1d39b22751b75614ce9877f00ca41a78402a265e351b9e51
|
|
| MD5 |
4e649fe14a0cf8337a134786b4dfc0ff
|
|
| BLAKE2b-256 |
be0c1a7d014e2fec3f5c5989266cce028fb1331ac44fb5ebfabec51dd5fec252
|
File details
Details for the file markdown_checker-1.2.0-py3-none-any.whl.
File metadata
- Download URL: markdown_checker-1.2.0-py3-none-any.whl
- Upload date:
- Size: 45.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ea68623796ebdd000227d16398cd1240a686e8cb064259324fef5116109b0b
|
|
| MD5 |
b410c32d1e71ca498d63a95ba8adbfd0
|
|
| BLAKE2b-256 |
fba72fc986a51d42a2a77ce4fb2b4ba4dc10c4deff88dde63d234f0e01925b8a
|