flake8-markdown
flake8-markdown copied to clipboard
Lints Python code blocks in Markdown files using flake8
Flake8 Markdown
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.
Features
- Lints code blocks containing regular Python and Python interpreter code (
pycon) - pre-commit hook to lint on commit
Installation
Flake8 Markdown can be installed from PyPI using pip or your package manager of choice:
pip install flake8-markdown
Usage
CLI
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'
pre-commit hook
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
Code of Conduct
Everyone interacting in the project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.
History
[0.5.0] - 2023-09-04
Added
- Added CI for
python3.11 - Added funding file
Removed
- Dropped support for
python3.7 and Pypy 3
[0.4.0] - 2022-09-11
Added
- Added support for
flake8v5 - Added support for
python3.10
Removed
- Dropped support for
python3.6
[0.3.0] - 2021-10-19
Added
- Added support for
flake8v4
[0.2.0] - 2019-06-14
Added
pyconcode block support
[0.1.1] - 2019-05-19
Changed
- Fixed pre-commit example in README
[0.1.0] - 2019-05-19
Added
- Added code for initial release