Flake8 Markdown lints GitHub-style Python code blocks in Markdown files using flake8
.
This package helps improve a Python project's documentation by ensuring that code samples are error-free.
- Lints code blocks containing regular Python and Python interpreter code (
pycon
) - pre-commit hook to lint on commit
Flake8 Markdown can be installed from PyPI using pip
or your package manager of choice:
pip install flake8-markdown
You can use Flake8 Markdown as a CLI tool using the flake8-markdown
command.
flake8-markdown
accepts one or more globs as its arguments.
Example:
$ flake8-markdown "tests/samples/*.md"
tests/samples/emphasized_lines.md:6:1: F821 undefined name 'emphasized_imaginary_function'
tests/samples/basic.md:8:48: E999 SyntaxError: EOL while scanning string literal
tests/samples/basic.md:14:7: F821 undefined name 'undefined_variable'
You can also add flake8-markdown
to your project using pre-commit. When configured, any staged Markdown files will be linted using flake8-markdown
once you run git commit
.
To enable this hook in your local repository, add the following repo
to your .pre-commit-config.yaml
file:
# .pre-commit-config.yaml
repos:
- repo: https://github.com/johnfraney/flake8-markdown
rev: v0.5.0
hooks:
- id: flake8-markdown
Everyone interacting in the project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.
- Added CI for
python
3.11 - Added funding file
- Dropped support for
python
3.7 and Pypy 3
- Added support for
flake8
v5 - Added support for
python
3.10
- Dropped support for
python
3.6
- Added support for
flake8
v4
pycon
code block support
- Fixed pre-commit example in README
- Added code for initial release