Dicey Markdown
A Markdown dialect for TTRPG character sheets
Try the examples: tap rolls and steppers, or press and hold a d20 roll or editable value.
Dicey
Square brackets make rolls. Single braces make editable values. Double braces make steppers; add /maximum to show a resource bar. Define a fixed variable with [SPELL:+5], then use it in a roll such as [1d20+SPELL].
[+3]Rolls 1d20 + 3. Press and hold a d20 roll for advantage or disadvantage.
[1d4+3]Rolls the expression as written.
[STR:+3]Defines the fixed variable STR and displays a rollable +3. Use it in a formula such as [1d6+STR]. Variables substitute their written values; they do not calculate derived bonuses.
{16}Press and hold to edit this value.
{None}Editable text, useful for entries such as conditions.
{{3}}Tap to edit, or adjust by one with the − and + buttons.
{{3/5}}Stepper with a maximum of 5 and a resource bar. At zero, the bar disappears.
Source
Rendered sheet
Markdown
Use regular Markdown headings, paragraphs, lists, block quotes, and tables to arrange a sheet. A heading starts a section. A table with one row of values becomes a grid of boxes; a table with multiple rows stays a table.
For example, the table below creates ability score boxes. The words “STR” and “DEX” name each value; the table’s shape determines the layout.
Source
Rendered sheet
Expandos reveal longer text
Write ||Label:, then put the description on following lines and close it with ||. Use two spaces at the end of a line for a rendered line break. Bold text and Dicey rolls work inside.
Source
Rendered sheet
Markdown stays Markdown
Dicey adds behavior to marked values; Markdown arranges the sheet. Fenced code stays literal, links remain links, and bold and italic text work as usual.