FIG-001 · MASTHEAD
// compare / svelte-markdown vs vs-svelte-exmarkdown

vssvelte-exmarkdown.

Two Runtime Renderers, Different Engines

FIG-001
SHEET 01 / 07
FIG-002 / OVERVIEW

at a glance.

Compare svelte-exmarkdown and @humanspeak/svelte-markdown: unified-based runtime rendering versus marked-powered Svelte 5 renderers and streaming support.

FIG-003 / FEATURE MATRIX

side-by-side.

Every surface that matters, compared without spin.

feature@humanspeak/svelte-markdownsvelte-exmarkdown
Svelte 5 Native yesyes
TypeScript Support yesyes
Parsing Engine markedunified/remark/rehype
Custom Renderers yesyes
Token Caching Built-in LRU cacheno
HTML Tag Control 84 tags with allow/denyVia rehype plugins
LLM Streaming Mode svelte-exmarkdown is a runtime renderer, but its upstream docs do not describe a streaming-specific incremental mode.writeChunk() / resetStream()no
Streaming HTML Output No documented streaming pipeline; partial HTML blocks during streaming aren’t reconciled into nested structures.Partial blocks reconcile when </tag> arrivesno
Plugin System Marked extensionsRemark/rehype plugins
Snippet Overrides yesno
HTML Renderers 84 dedicated componentsGeneric element handling
Math (KaTeX) Built-in extension (markedKatex)Via remark-math + rehype-katex
Diagrams (Mermaid) Built-in extension (markedMermaid)Via rehype-mermaid
Bundle Size ~15KB~25KB+ (unified stack)
Marked Extensions yesno
FIG-004 / STRENGTHS

where each shines.

▣ svelte markdown 12
  • +Svelte 5 runes-native — built for runes, not retrofitted
  • +TypeScript-first with full type safety
  • +Built-in token caching (50-200x faster re-renders on repeated content)
  • +LLM streaming with imperative writeChunk() / resetStream() API
  • +23 markdown renderers + 84 HTML tag renderers — every override is a Svelte snippet
  • +First-class extensions: KaTeX math, Mermaid diagrams, GitHub alerts, footnotes
  • +Built-in XSS protection — protocol allowlist, event-handler stripping, attribute sanitization
  • +Allow/deny utilities (allowHtmlOnly, excludeRenderersOnly, etc.) for fine-grained control
  • +Drop-in component — works anywhere in your Svelte app
  • +Svelte 5 snippet overrides — customize rendering inline
  • +84 dedicated HTML tag renderers (not generic)
  • +Smaller bundle — marked is lighter than unified stack
▢ svelte-exmarkdown 4
  • +Built on unified ecosystem — access to hundreds of remark/rehype plugins
  • +AST-level transformation capabilities
  • +Plugin architecture designed for extensibility
  • +Active maintenance and Svelte 5 support
FIG-005 / LIMITATIONS

where each falls short.

▣ svelte markdown 3
  • Smaller community (newer project)
  • Runtime-only (no build-time optimization)
  • No direct access to remark/rehype plugin ecosystem
▢ svelte-exmarkdown 4
  • No built-in token caching
  • Larger bundle (unified + remark + rehype)
  • No snippet override support
  • Fewer dedicated HTML tag renderers
FIG-006 / VERDICT

the honest call.

Choose svelte-exmarkdown if you are invested in the unified/remark/rehype ecosystem and need specific plugins from that world. Choose @humanspeak/svelte-markdown for a lighter, faster option with built-in caching, snippet overrides, and comprehensive HTML tag handling.

FIG-007 / MORE

read more.

Every head-to-head, with the same matrix + pros / cons + verdict format.

SET / JETBRAINS MONO + INTER
HUMANSPEAK · 2026
MIT LICENCE
try
svelte markdowninstall in 30 seconds
SHEET 07 / 07
END OF DOCUMENT
↩ ALL COMPARISONS