Changelog

This changelog is generated automatically from GitHub Releases.

v0.3.2

2026-08-08 · GitHub

Packaging fix release: no functional changes from v0.3.0.

v0.3.1

2026-08-08 · GitHub

Packaging fix release: no functional changes from v0.3.0.

v0.3.0

2026-08-08 · GitHub

multimark v0.3.0 adds a full AST parsing API, adopts the Python stable ABI for forward-compatible wheels, and ships pre-built Pyodide/WebAssembly wheels for browser-based Python environments. Python 3.14 is now tested in CI, and a single abi3 wheel per platform covers all CPython versions from 3.9 onward.

New Features

  • Streaming parser — New Parser class for incremental Markdown parsing. Feed content in chunks with parser.feed(), then render to any output format or access the AST via parser.finish(). Supports context manager usage for automatic resource cleanup. (#6)

  • AST access — New parse() function and Node class expose the full CommonMark/GFM abstract syntax tree. Inspect document structure, traverse with node.walk(), read properties like heading_level, url, and literal, mutate the tree in place, and render subtrees independently. (#6)

  • Pyodide / WebAssembly wheels — Pre-built wheels for Pyodide are now published to PyPI, enabling multimark in browser-based Python environments such as JupyterLite, Shinylive, and Marimo WASM mode. (#6)

  • Python stable ABI (abi3) wheels — Wheels now use the cp39-abi3 tag, providing a single wheel per platform that works with all CPython versions from 3.9 onward — including future releases like 3.14. (#4)

Enhancements

  • Python 3.14 is now included in the CI test matrix. (#6)
  • Added manually triggered CI workflows for testing native wheel, Pyodide wheel, and sdist builds before a release. (#6)
  • Centralized all cibuildwheel configuration in pyproject.toml so CI and local builds share the same settings. (#6)
  • Added Makefile targets for local wheel and sdist builds (make dist-wheel, make dist-pyodide, make dist-sdist, make dist-all). (#6)

Documentation

  • Added a user guide page on parsing and AST usage. (#6)
  • Added WHEELS.md documenting the complete wheel build matrix, local build commands, and pre-release testing workflows. (#6)
  • Added parser types (Parser, Node, NodeType, ListType, DelimType, parse) to the API reference. (#6)

v0.2.0

2026-06-09 · GitHub

Multimark v0.2.0 introduces a command-line interface for converting Markdown directly from the terminal. The CLI supports all five output formats, GFM extensions, and rendering options. This makes it easy to use multimark in shell pipelines, scripts, and agent workflows without writing Python.

New Features

  • Command-line interface — New multimark CLI command converts Markdown from a file or stdin to HTML, LaTeX, man, CommonMark, or XML. Supports all GFM extensions (-e table, -e strikethrough, etc.) and rendering flags (--smart, --unsafe, --footnotes, and more). Built with Click for shell completion and automatic help generation. (#1)

  • --width CLI option — Controls line wrapping for LaTeX, man page, and CommonMark output directly from the command line. Defaults to no wrapping; set a column width (e.g., --width 72) to wrap long paragraphs. (#2)

v0.1.3

2026-05-20 · GitHub

Packaging fix release: no functional changes from v0.1.0.

v0.1.2

2026-05-20 · GitHub

Packaging fix release: no functional changes from v0.1.0.

v0.1.1

2026-05-20 · GitHub

Packaging fix release: no functional changes from v0.1.0.

v0.1.0

2026-05-20 · GitHub

This is the first public release of multimark: fast Python bindings to cmark-gfm, the C reference implementation of CommonMark with GitHub Flavored Markdown extensions.

multimark provides five output renderers (HTML, LaTeX, groff man, XML, and normalized CommonMark) through a minimal, consistent API. All GFM extensions are supported (tables, strikethrough, autolinks, task lists, and tag filtering) and raw HTML is safely stripped by default. Pre-built wheels are available for Linux, macOS, and Windows across Python 3.9–3.13, with no system dependencies required.

Highlights

  • Five renderersmarkdown_to_html(), markdown_to_latex(), markdown_to_man(), markdown_to_commonmark(), and markdown_to_xml(), all sharing the same interface.
  • GFM extensions — Enable tables, strikethrough, autolinks, task lists, and tag filtering via the extensions= parameter.
  • Options flags — Boolean keyword arguments (smart, unsafe, hardbreaks, sourcepos, footnotes, normalize) plus a composable Options bitmask for advanced flags.
  • Safe by default — Raw HTML is stripped unless unsafe=True is explicitly set.
  • Cross-platform wheels — Built with cibuildwheel for Linux, macOS, and Windows (Python 3.9–3.13).