Visdown

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.