Overview
Visdown compiles markdown into reactive Svelte 5 components. A fenced ```js
block is a **cell** — a unit of reactivity, not a plain code sample — and
${expr} anywhere in the surrounding prose is a live interpolation into that
same reactive graph. Cells that call view() become $state roots; anything
that transitively depends on one becomes $derived; everything else compiles
down to plain, static JS.
The full spec — pipeline, contracts, the reactivity model, and the error
cases a compiler build has to get right — lives in
docs/spec.md.
See Status for what's implemented so far.