An open format for documents — content carries the meaning, themes carry the look. Like CommonMark, but for whole documents.
ChoirMark is CommonMark plus a small extension profile (fenced divs ::: role, bracketed spans
[text]{.role}, attributes) and a closed role vocabulary. A .cmk file describes what each part
of a document is; a theme decides how it looks.
See spec/spec.md for the format. The spec is also the conformance suite: every
example block in it becomes a test (see tools/extract-examples.js).
Early. The specification skeleton and the reference-implementation surface are in place; the parser
is not implemented yet — parse() and toHtml() currently throw. Track progress in
CHANGELOG.md.
npm install choirmarkRequires Node ≥ 20.
import { parse, toHtml } from 'choirmark'
const doc = parse(source) // .cmk source → document model
const html = toHtml(source) // .cmk source → role-tagged HTML pivotMIT. See LICENSE.