TODO
Current status
- Core parser tests: 302/302 on both JavaScript and Wasm.
- CommonMark HTML conformance: 652/652 with no skipped examples.
- Public JavaScript API CommonMark conformance: 652/652 with
{ autolink: false, tagfilter: false }. - Markdown serialization parity with remark: 464 active examples and 78 skipped examples.
- CommonMark semantic round-trip: 611/652; 41 examples still change rendered HTML after normalization.
- GFM extension serialization comparison: 23 active examples and 1 intentional skipped example.
- Official GFM HTML conformance: 24/24 on both JavaScript and Wasm.
- A native
mmmdimplementation is available undersrc/cmd/mmmd-native. - The only open GitHub issue is #1; its implementation is present locally but the issue remains open pending release/closure.
- The
strictargument remains for compatibility; parsing is always CommonMark-conformant.
P0: Completed
- Gate GFM behavior against the official cmark-gfm HTML for all 24 extension examples on JavaScript and Wasm.
- Implement GFM disallowed-raw-HTML tag filtering for block and inline HTML.
- Keep GFM table bodies open for pipe-less continuation rows until a blank line or a new block begins.
- Implement GFM extended autolinks, including boundary, host, punctuation, entity, and balanced-parenthesis rules.
- Add a native CLI for issue #1. Native TUI output deliberately leaves Mermaid as an ordinary fenced code block because the diagram renderer is JavaScript/Wasm-only.
- Define
serializeas a stable normalized format: ATX headings, canonical markers and spacing, a trailing reference-definition section, preserved reference styles, and idempotent/semantic round-trip tests.
P1: Correctness and maintenance
- Fix the 41 CommonMark semantic round-trip cases classified in
docs/serializer-compat.md; prioritize block/list structure, block-start escaping, and reference definitions. - Decide whether the 47 formatting-only remark differences are worth matching. They do not change rendered HTML and often conflict with the normalized serializer contract.
- Decide whether the experimental notebook package remains in this repository. Its separate backlog is in
src/x/notebook/TODO.md.
P1: Performance
- Establish stable serializer and large-table baselines before optimizing them. The old percentage-regression notes were not backed by the current benchmark baseline.
- Keep
just bench-simdas the regression gate for line scanning and long HTML terminator searches.
Completed or removed
- Full CommonMark HTML conformance, including nested lists, setext headings, emphasis, and reference-link resolution.
- Split block parsing into focused files.
- SIMD line scanning and HTML terminator search benchmarks.
- Official GFM HTML conformance, tagfilter, table continuation, and extended autolinks.
- Escaped pipes inside table inline elements (issue #6, including official GFM example 200).
- Native
mmmdCLI with a deterministic Mermaid fallback. - Stable normalized serializer contract and canonical reference definitions.
- GitHub alert blocks and complete footnote rendering with repeated back references.
- Display-math blocks with a replaceable trusted-HTML renderer boundary for KaTeX-style integrations.
- Container/text directives, definition lists, and standalone block attributes.
- Shift nested ordered/unordered list-item and child-block spans during incremental reuse.
- Resolve 5 of 6 GFM serializer differences. Keep example 204 intentionally different because remark exposes an overflow cell that official GFM ignores.
- Remove the experimental Folddown package, public API, viewer, workflow, and documentation.
On this page
TODO
Current status
P0: Completed
P1: Correctness and maintenance
P1: Performance
Completed or removed