lepture

mistune: Parse Markdown in Python

Mistune is a fast Python Markdown parser that converts Markdown to HTML with configurable renderers and plugins. It suits Python applications that need Markdown processing and customization without a separate service.

ActivePythonBSD-3-ClauseLibraryMarkdownText Processing
Stars
3.1k
Forks
323
Stars, last 15 days
+2
Last commit
1 day ago
Contributors
68

Our take

Activeregular commits and releases

Health score

51/100

How it is scored
Activity
63
Community
50
Issues
53
Pull requests
39

+2 stars in the last 15 days

  • Slower to merge pull requests than 83% of the projects we track

Mistune is an actively maintained Python Markdown library, though its development depends heavily on one contributor.

Good fit if

  • You need Markdown-to-HTML conversion in a Python application and can use Python 3.10 or newer.
  • You want plugin and renderer customization, or the default raw-HTML escaping behavior.
  • You are comfortable with a BSD-3-Clause licensed dependency and the project’s concentrated contributor base.

Look elsewhere if

  • Your application cannot run on Python 3.10 or newer.
  • You need a Markdown parser implemented for a language other than Python.
  • You require a project whose development is not concentrated around one contributor.
All health signals
Last commit2026-10-16 (1 day ago)
Commits, last 90 days58
Releases, last 12 months8 (latest v3.3.4, 2026-07-22)
Contributors68 (top contributor: 87% of commits)
Issues closed, last 90 days2
Pull requests merged, last 90 days15 (typically merged in 3 days)
Project age12 years

Checked on 2026-10-18 with the GitHub API.

Overview

Mistune is a Markdown parser built for Python applications. It converts Markdown text to HTML and provides renderers and plugins so developers can tailor how content is processed and rendered.

The default create_markdown() setup escapes raw HTML, which is useful when processing untrusted input. The project also provides a legacy mistune.html() helper that enables raw HTML and several plugins, intended for trusted content or output that is sanitized separately.

Key Features

  • Convert Markdown text to HTML with create_markdown().
  • Customize parsing and rendering with plugins and renderers.
  • Escape raw HTML by default with the standard setup.
  • Use the legacy mistune.html() helper for compatibility with raw HTML and several plugins.
  • Install directly from PyPI with pip.

Use Cases

  • Python web applications that need to render user-authored Markdown while escaping raw HTML by default.
  • Documentation tools that convert Markdown files into HTML.
  • Applications that need plugins or custom renderers to adapt Markdown output to their own requirements.
  • Existing Python projects that need a Markdown parser and want to use Mistune's compatibility helper for trusted input.

What you need

Detected in the repository

  • Python >=3.10 (from pyproject.toml)
  • A test suite and automated checks on GitHub Actions

License in plain words

BSD-3-Clausepermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice; the authors' names cannot endorse your product
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Install Mistune with pip:

pip install mistune

See the README for usage details and plugin documentation.

Alternatives

  • markdown: Python-Markdown prioritizes compatibility with John Gruber’s reference implementation and extensions, while Mistune emphasizes configurable renderers and plugins.
ProjectLanguageLicenseStarsStatus
mistunePythonBSD-3-Clause3.1kActive
markdownPythonBSD-3-Clause4.3kActive

Considerations

Mistune requires Python 3.10 or newer. Recent commits and releases indicate ongoing maintenance, but most contributions come from one person, which is a continuity risk for teams adopting it. The supplied health data also records few issues closed recently, while pull requests continued to be merged. For untrusted Markdown, use the default create_markdown() behavior; the legacy helper enables raw HTML, so use it only with trusted content or sanitize its output externally. Review the BSD-3-Clause license obligations before distribution.

Found this useful?

Share it with someone who would like mistune.

Comparisons