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:

  1. Declare which spec version you support (v0.5+ / v0.6+ / v1.0+)
  2. Unrecognized DSL blocks show as code-block literals (plain-text fallback — see Plain-text fallback principle)
  3. Encountering unknown modifier ignore (forward compat)
  4. Run the spec's conformance test (planned for v1.0 release — for now, manual spot-check)

See also