Home - Topics - Papers - Theses - Blog - CV - Photos - Funny

Composable Markup (CMark)

Matchup? (matchertext markup)

Some goals:

Aware text editors are welcome to recognize and convert directives into Unicode when feasible: eg for character sequences, single/double quoted text, etc.

“…” Quoted string: quotes become left/right

⏎	[br]	Line break
␍	[r]	Carriage return character mark
␤	[n]	Newline character mark
¶	[p]	Paragraph mark

X	[o']	Open single quote in language-dependent style
X	[c']	Close single quote in language-dependent style
X	[o"]	Open double quote in language-dependent style
X	[c"]	Close double quote in language-dependent style

X	[o<>]	Open angle bracket
X	[c<>]	Close angle bracket
X	[o<<>>]	Open double angle bracket
X	[c<<>>]	Close double angle bracket

Spacing: " " [mq_] Em quad space " " [nq_] En quad space " " [m_] Em space " " [n_] En space " " [3m_] Three-per-Em space " " [4m_] Four-per-Em space " " [6m_] Six-per-Em space " " [d_] Figure (digit) space " " [.] Punctuation space (width of a period) " " [t] Thin space " " [h_] Hair space \u200B [0_] Zero-width space

" "	[~_]	No-break space
\u202f	[~t_]	Narrow no-break space
\ufeff	[~0_]	Zero-width no-break space

Character markup

a(uri)[…] Link to uri/cri uri[…] Show a literal URI (as a link)

t[…] or m[…]? Raw text, interpreted literally (no markup) u[…] Unicode character reference - hex number or name?

‘[…] Single-quoted text “[…] Double-quoted text

e[…] Emphasis - usually italicized s[…] Strong - usually bold

k[…] Keyboard-entered text - usually typewriter font d[…]? Displayed sample output - usually typewriter font

i[…]? Italics - no? b[…]? Bold - no? _[…]? Underline - no? -[…]? Strikeout - no?

sub[…] Subscript sup[…] Superscript

sq[…] or ‘[…]? Single-quoted text dq[…] or “[…]? Double-quoted text [sq][…] Single-quoted text, Unicode symbolization requested [dq][…] Double-quoted text, Unicode symbolization requested saq[…] Single-angle-quoted text? (or sq w/ language config?) daq[…] Double-angle-quoted text

del[…] Mark deleted text, usually with strikeout ins[…] Mark inserted text, usually with underline

[o()] Open parenthesis (unmatched) [c()] Close parenthesis [o[]] Open square bracket [c[]] Close square bracket [o{}] Open curly brace [c{}] Close curly brace [o<>] Open angle bracket ⟨ [c<>] Close angle bracket ⟩ [o«»] Open double-angle bracket [c«»] Close double-angle bracket

code[…] Computer code kbd[…] or k[…] Keyboard input samp[…] Sample output var[…] or v[…] Variable name pre[…] Preformatted multiline text

dfn[…] or def[…]? Definition - usually italicized cite[…] Citation of title of a creative work - italicized

mark[…] Marked or highlighted text - black-on-yellow

[entity]? HTML entity by name - maybe no (HTML-specific) [#n]? HTML entity by number - maybe no (HTML-specific)

![…] or -[…] markup comment? ?(flag)[…] conditionally-included text?

Block markup

span[…] Text span element div[…] Block division element

p[…] Paragraph element

h1[…] Level-1 heading h2[…] Level-2 heading …

quote[…] Block quote

color(c)[…] Color c text

img(args)[alt] Embedded image

ul[…] Unordered list ol[…] Ordered list li[…] List item

dl[…] Description list dt[…] Description term dd[…] Description

Tables

table(args)[…] Table tr(args)[…] Table row td(args)[…]) Table data/cell



Bryan Ford