cd /news/developer-tools/show-hn-quikdown-17-kb-bidirectional… · home topics developer-tools article
[ARTICLE · art-35356] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Show HN: Quikdown – 17 KB bidirectional Markdown parser and rich-fence editor

A developer released Quikdown, a 17 KB bidirectional Markdown parser and editor with rich-fence support for rendering diagrams, math, and other content. The tool, built in pure JavaScript, targets LLM workflows and collaborative editing by allowing users to edit rendered output while LLMs work with underlying Markdown. It includes plugins for Mermaid, MathJax, Vega-lite, and more, with security features like HTML escaping and no eval().

read2 min views1 publishedJun 21, 2026

Hi HN-

This past year I've built and maintained Quikdown, a bidirectional markdown parser and companion editor in pure js, with batteries included fences for rendering rich content.

Try it live: https://deftio.github.io/quikdown/pages/edit/ The motivation was working with many different LLM frameworks and wanting to test tool calling and collaborative editing. Often I just wanted a pretty final output with rich support for diagrams, math, or other rendered content but, keep it editable. So a user (often me) could just work on the final (rendered) output while the LLM could see/seek/update/edit just using markdown under the covers. Quikdown editor supports md/split/rendered output and can run headless so you can bring your own UI. MCP support is included as well.

The Quikdown parser has zero dependencies and is based on regex and outputs HTML with built-in tags for triggering plugins for fences (like Mermaid, Vega-lite, code syntax, music and many more). A separate set of attributes allow tracking of bidirectional content so a user can edit markdown tables, code rendered in highlightjs and many other types in the rendered view. For complex rendered types (like Mermaid or STL) bidirectional support is not included but if you want to take that on there are hooks to support your own efforts.

While the parser has no dependencies , the editor lazy-loads appropriate libraries for rendering rich content. Supported fences include: Mermaid, MathJax, SVG, CSV/TSV/PSV tables, GeoJSON with live leaflet based pan-and-zoom, Sheet music (via ABC.js), Vega/Vegalite-charts, STL (via threejs), code highlighting (via highlightjs). Also included is programmatic undo/redo - so if you are making a closed loop with another output service (LLM or some process) you can roll back content changes that were not desired.

All inline HTML is escaped by default - no eval() or other unsafe raw parsing of content is allowed and URL sanitization blocks script based urls. However if you are using the editor the plugins which render rich content are left to handle that content on their own and are hence "trusted".

Quikdown intentionally doesn't cover all of Commonmark compatibility - if you find some portion of the spec isn't covered that you need raise an issue or make a PR and I'll take a look.

A standalone "air-gapped" build is also provided so you can use quikdown locally with zero cloud support. The standalone build is about 8MB so not recommended for use in online applications.

Longer write-up: [https://deftio.github.io/quikdown/pages/blog/](https://deftio.github.io/quikdown/pages/blog/)

Comments URL: [https://news.ycombinator.com/item?id=48616229](https://news.ycombinator.com/item?id=48616229)

Points: 1

── more in #developer-tools 4 stories · sorted by recency
── more on @quikdown 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-quikdown-17-…] indexed:0 read:2min 2026-06-21 ·