Skip to content

v0.3.0

Choose a tag to compare

@rich-iannone rich-iannone released this 08 Aug 03:23
· 4 commits to main since this release

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)