Roadmap
This document outlines longer-term ideas for multimark: features that would expand its capabilities beyond the current render-to-string API.
Planned — Near Term
Enhancements that build directly on existing infrastructure.
Type Stubs / py.typed Marker
Add a py.typed marker and inline type annotations for better IDE support and static analysis.
- PEP 561 compliant
py.typedmarker file in the package - Full type annotations on all public functions and the Options enum
- Improved autocomplete, hover docs, and type checking in editors
Planned — Medium Term
Features that expand the scope of what multimark can produce.
Streaming / Incremental API
Expose the cmark parser object for large documents, allowing feed-based parsing without buffering the entire input in memory.
Parserclass wrappingcmark_parser_new/cmark_parser_feed/cmark_parser_finish- Extensions attachable at parser creation time
- Render from the finished AST node with any renderer
- Useful for processing very large Markdown files or streaming input
AST Access
Let users walk the parsed tree from Python (not just render to a string).
parse()function returning aNodewrapper around the cmark AST- Tree traversal:
node.children,node.parent,node.next,node.prev - Node type introspection:
node.type,node.literal,node.url,node.title - Mutation support: insert, remove, and replace nodes before rendering
- Enables custom transformations, inspections, and selective rendering
Feedback & Contributions
Have ideas for features not listed here? Open an issue with the enhancement label. Contributions to any planned item are welcome so check existing issues first to avoid duplication.
This roadmap is a living document. It is updated as features ship and new priorities emerge.