Rho format spec
The complete specification document for Rho format — precise definitions for implementers (not for writers / integrators).
Full specification
→ AINP protocol (v0.7) — hosted here on rho.md, the whole document on one page
Covers:
- Precise syntax for all 15 capabilities
- Parser behavior conventions
- Output HTML structure (class naming, data attributes)
- Render semantics (hydration timing, state sharing, nesting rules)
- Mini DSL expression syntax (full BNF)
- SVG sanitizer allow/deny lists
- Plain-text fallback requirements
License: the spec is CC BY 4.0 — anyone can implement a reader from it (no commercial license required).
Version history
| Version | Released | Major changes |
|---|---|---|
| v0.0 | 2026-01-15 | Initial: 5 static + 7 interactive = 12 capabilities |
| v0.1 | 2026-01-28 | Spec formalization, HTML output standardization |
| v0.2 | 2026-02-10 | namespace shared state |
| v0.3 | 2026-02-25 | nested DSL inner processor |
| v0.4 | 2026-03-15 | computed derived values |
| v0.5 | 2026-04-22 | timer auto-play animation |
| v0.6 | 2026-05-08 | SVG scenes |
| v0.7 | 2026-06-14 | table / media / quiz / branch (current latest) |
Compatibility / SemVer
@rho/md follows strict SemVer from v1.0:
- patch (1.0.x): bug fix, spec behavior unchanged
- minor (1.x.0): new capabilities, backward-compatible
- major (2.0.0): may break old capability behavior
Current v0.x is pre-stable — any change is possible (including spec breakage). Use v1.0+ for production.
Compatibility recommendations for reader implementations
If you build your own reader implementation:
- Declare which spec version you support (
v0.5+/v0.6+/v1.0+) - Unrecognized DSL blocks show as code-block literals (plain-text fallback — see Plain-text fallback principle)
- Encountering unknown modifier ignore (forward compat)
- Run the spec's conformance test (planned for v1.0 release — for now, manual spot-check)
See also
- Implementing your own reader — Walkthrough for non-
@rho/mdimplementations - Writer's Guide — Capabilities from "how to use" angle
- API reference —
@rho/mdimplementation details - AINP protocol (v0.7) — the full text, on this site