Opinionated Markdown formatter and linter
Project description
mdlint — Python package
This directory contains the Python distribution for mdlint, an opinionated Markdown formatter and linter written in Rust.
The package wraps the pre-built mdlint binary. No Rust toolchain is required to install or use it.
Installation
pip install mdlint
Or with uv:
uv tool install mdlint
Usage
# Format Markdown files
mdlint format
# Check for issues
mdlint check
# Check and auto-fix
mdlint check --fix
See the full documentation for all options, configuration, and CI integration examples.
How it works
pip install mdlint downloads a platform-specific wheel that bundles the correct pre-built
mdlint binary for your OS and architecture. The mdlint command is a thin Python wrapper
that locates and execs that binary.
Supported platforms:
| Platform | Architecture |
|---|---|
| Linux | x86_64 (glibc) |
| Linux | aarch64 (glibc) |
| macOS | x86_64 |
| macOS | arm64 (Apple Silicon) |
| Windows | x86_64 |
Development
Prerequisites
Build a wheel locally
cd python
# Pure-Python wheel (no binary bundled — for metadata validation only)
uv build --wheel
# Platform-specific wheel with a binary
cp /path/to/mdlint-binary mdlint/mdlint
MDLINT_PLATFORM_TAG=macosx_11_0_arm64 uv build --wheel
MDLINT_PLATFORM_TAG is read by hatch_build.py to stamp the correct platform tag onto the
wheel. Without it, the wheel is tagged py3-none-any and contains no binary — useful for
metadata validation in CI but not for distribution.
Validate package metadata
cd python
uv build --wheel
uvx twine check dist/*.whl
Platform tags
| Asset | MDLINT_PLATFORM_TAG |
|---|---|
mdlint-linux-x86_64 |
manylinux_2_17_x86_64.manylinux2014_x86_64 |
mdlint-linux-aarch64 |
manylinux_2_17_aarch64.manylinux2014_aarch64 |
mdlint-macos-x86_64 |
macosx_10_12_x86_64 |
mdlint-macos-aarch64 |
macosx_11_0_arm64 |
mdlint-windows-x86_64.exe |
win_amd64 |
Release
Releases are automated via .github/workflows/build-python.yml. On a version tag push, the
workflow downloads each pre-built binary from the GitHub release, builds a platform-specific
wheel, uploads it to the GitHub release, and publishes it to PyPI.
A PYPI_TOKEN secret must be configured in the repository settings.
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 Distributions
Built Distributions
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 markdownlint_rs-0.3.8-py3-none-win_amd64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
031eaed8930f12c327c0d6c33f2f1f78e8b00fe6f99ae3e039cc32777f5a4ca4
|
|
| MD5 |
e6fe04ae84cd178c755d99cf94f580a3
|
|
| BLAKE2b-256 |
4301243402b28a1febf2938860a6f4dbece7cb2f1e624019a61f812636e72c5c
|
File details
Details for the file markdownlint_rs-0.3.8-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
5ea287a5f7d92efb756b0506a3d4672d7631a86770ea236533f9a4d1b2098fe9
|
|
| MD5 |
8e51b231a5c3fe8972db63f2a1fe384e
|
|
| BLAKE2b-256 |
a90879cc107299aa05c9081dc940f5314f1ae02e89ce27688f8b162d0c461c2c
|
File details
Details for the file markdownlint_rs-0.3.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
364e57e50a25b8a7416f498493c188ac0fe1fd394102e0670cd98d16ad6934f3
|
|
| MD5 |
cc2b9cf8d5e48058b3478d394b25e139
|
|
| BLAKE2b-256 |
7357d37f2cd81130679af5e53f2b5308e7ab8e60f7c3ba5cf2f9b6d77a5bbbd7
|
File details
Details for the file markdownlint_rs-0.3.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
3ea9b9ec4405571648759095931310195508c670d451ae7d64b4c0e77b36b208
|
|
| MD5 |
2677730ec321960526a6d6c511ac5cb8
|
|
| BLAKE2b-256 |
31671dfdf8b201e51966144ac8401b72d9534f49f50a3f0773e97e937a6eebc0
|
File details
Details for the file markdownlint_rs-0.3.8-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
05720938bf74eced7905921b857ff2382250ba5fc88b6d56c5557c57025583d9
|
|
| MD5 |
009335eeb7af8df4b6dcc188cb389766
|
|
| BLAKE2b-256 |
91edf9253c198e091400389b40ff04d8c834254df71217e63a02b634a4da31d8
|
File details
Details for the file markdownlint_rs-0.3.8-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: markdownlint_rs-0.3.8-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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 |
156474db3437955760941f645c9a1c0a772954682dfde192e5271dfc18358628
|
|
| MD5 |
76caf9adbdbb1265f201825cbe0dc959
|
|
| BLAKE2b-256 |
f947e9be844f87200c65609e1de7c38e6207d707c827a09aca056130860b7abf
|