Skip to main content

Lints Python code blocks in Markdown files using flake8

Project description

Flake8 Markdown

PyPI PyPI PyPI Tox

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 python 3.11
  • Added funding file

Removed

  • Dropped support for python 3.7 and Pypy 3

[0.4.0] - 2022-09-11

Added

  • Added support for flake8 v5
  • Added support for python 3.10

Removed

  • Dropped support for python 3.6

[0.3.0] - 2021-10-19

Added

  • Added support for flake8 v4

[0.2.0] - 2019-06-14

Added

  • pycon code 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8_markdown-0.5.0.tar.gz (4.6 kB view hashes)

Uploaded source

Built Distribution

flake8_markdown-0.5.0-py3-none-any.whl (6.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page