multimark
Python bindings to cmark: CommonMark parsing and rendering (HTML, LaTeX, man, XML)
Decision gist · record as of 2026-08-14
Yes, if you need to render Markdown to multiple formats or require GitHub Flavored Markdown support. The active maintenance, permissive dual license, and safe-by-default design make it a solid choice. Medium install friction is typical for compiled packages and not a barrier. The Beta status is worth noting if you require strict API stability guarantees.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; prebuilt wheels available for Linux, macOS, and Windows.
- Medium install friction due to compiled wheels, but prebuilt binaries are available for Linux, macOS, and Windows on Python 3.9+.
- Active maintenance as of 2026-08-08 with recent release history.
License · maintenance · safety
MIT AND BSD-2-Clause (permissive) — Dual-licensed under MIT and BSD-2-Clause (the latter covering the vendored cmark-gfm library). Both are permissive; no restrictions on commercial or proprietary use.
last release 2026-08-08 (6 days) · last repo commit 2026-08-08 · 7 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 505,206 downloads/mo, #6,293 on PyPI
Alternatives
Verify before relying
pip install multimark
from multimark import markdown_to_html, markdown_to_latex
html = markdown_to_html("**Hello**, *world*!")
latex = markdown_to_latex("**Hello**, *world*!")- Whether the 14% performance advantage over cmarkgfm holds across different input sizes and use patterns.
- Stability guarantees or API compatibility policy given the Beta development status.
What it is and what it does
Multimark is a Python wrapper around cmark-gfm, the C reference implementation of CommonMark with GitHub Flavored Markdown extensions. It renders Markdown text to five different output formats—HTML, LaTeX, groff man, XML (AST), and normalized CommonMark—all from a single lightweight package with no system dependencies beyond Python 3.9+.
The package is designed for convenience: it accepts named boolean keyword arguments like `smart=True` for typographic punctuation, `unsafe=True` to allow raw HTML passthrough, and `footnotes=True` to enable footnote syntax. It supports GFM extensions (table, strikethrough, autolink, tagfilter, tasklist) by name. Safe-by-default behavior means raw HTML is blocked unless explicitly enabled, and the API avoids opaque bitmasks in favor of readable options.
Use it for
- Convert user-submitted Markdown to HTML for web display with built-in XSS protection via safe-by-default rendering.
- Generate LaTeX or man-page documentation from Markdown source for offline distribution.
- Parse and normalize Markdown with GitHub extensions (tables, strikethrough) for content processing pipelines.
- Render Markdown with smart typography (curly quotes, em-dashes) for publication-quality output.
- Extract Markdown structure as XML (AST) for programmatic analysis or transformation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to render Markdown to multiple formats or require GitHub Flavored Markdown support.
The active maintenance, permissive dual license, and safe-by-default design make it a solid choice. Medium install friction is typical for compiled packages and not a barrier. The Beta status is worth noting if you require strict API stability guarantees.
Install
multimark on PyPI
Before you install
Medium install friction due to compiled wheels, but prebuilt binaries are available for Linux, macOS, and Windows on Python 3.9+. Active maintenance as of 2026-08-08 with recent release history.
Requires Python 3.9 or later; prebuilt wheels available for Linux, macOS, and Windows.
License in practice
Dual-licensed under MIT and BSD-2-Clause (the latter covering the vendored cmark-gfm library). Both are permissive; no restrictions on commercial or proprietary use.
Quickstart
pip install multimark
from multimark import markdown_to_html, markdown_to_latex
html = markdown_to_html("**Hello**, *world*!")
latex = markdown_to_latex("**Hello**, *world*!")
Verify before relying
- Whether the 14% performance advantage over cmarkgfm holds across different input sizes and use patterns.
- Stability guarantees or API compatibility policy given the Beta development status.
Package facts
| License | MIT AND BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagescfficlick |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 505,206 / month, #6,293 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: CProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Text Processing :: Markup :: Markdown |
Evidence: multimark-0.3.2-cp39-abi3-macosx_10_9_x86_64.whl; multimark-0.3.2-cp39-abi3-macosx_11_0_arm64.whl; multimark-0.3.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; multimark-0.3.2-cp39-abi3-musllinux_1_2_x86_64.whl; multimark-0.3.2-cp39-abi3-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “markdown to latex renderer”
- multimarkConverts Markdown to HTML, LaTeX, groff man, XML, or normalized…
- mistletoemistletoe is a pure-Python Markdown parser that converts Markdown…
- gh-md-to-htmlConverts GitHub-flavored Markdown to HTML with support for offline…
Give your agent the search over MCP, or paste the wish link into any chat.
More Markdown packages
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
Converts Markdown text to HTML using a Python implementation of John Gruber's Markdown specification, with support for extensions.
Install it if you need to parse Markdown in Python.
Sphinx generates professional documentation from reStructuredText source files, producing HTML, PDF, EPUB, and other formats with automatic cross-references, code highlighting, and hierarchical navigation.
Converts tabular data into formatted tables for output in multiple text, binary, and application-specific formats including Markdown, HTML, CSV, JSON, Excel, LaTeX, and SQLite.
Install it if you need to generate formatted tables in any of its supported output formats; skip it only if your use case is limited to a single format where a…
Trafilatura extracts main text, metadata, and structured content from web pages and HTML, converting raw HTML into clean, usable data in multiple output formats.
A Sphinx extension that adds responsive web component directives for building styled cards, grids, tabs, and other layout elements in documentation.
Install it if you want modern design aesthetics in your docs; skip it if you're comfortable with plain Sphinx styling or prefer hand-coded HTML.
See also cmarkgfm · comrak · py-gfm · commonmark · marko · gh-md-to-html · markdown-it-pyrs · mdformat-gfm · html-to-markdown · mdurl