Markdown Features
dodeca processes markdown through marq, which extends standard markdown with several features.
Syntax highlighting
Fenced code blocks get syntax highlighting with light and dark themes:
``` rust
fn main () {
println! ( "hello" );
}
``` Themes are configurable in dodeca.styx:
syntax_highlight {
light_theme github-light
dark_theme tokyo-night
} Highlighting is powered by arborium (tree-sitter grammars).
Mermaid diagrams
Fenced code blocks with the mermaid language tag are rendered as diagrams client-side:
``` mermaid
graph LR
A[Request] --> B{Cache?}
B -->|Hit| C[Serve]
B -->|Miss| D[Build]
D --> E[(Store)]
E --> C
``` Result:
graph LR
A[Request] --> B{Cache?}
B -->|Hit| C[Serve]
B -->|Miss| D[Build]
D --> E[(Store)]
E --> CThe Mermaid.js library is automatically injected when any page uses mermaid blocks.
Pikchr diagrams
Pikchr diagrams are rendered server-side to SVG:
``` pikchr
oval "Source" fit
arrow right 75%
box "Parse" fit
arrow right 75%
box "Transform" fit
arrow right 75%
box "Render" fit
arrow right 75%
file "Output" fit
``` Result:
ASCII art diagrams
Code blocks tagged with aasvg are converted from ASCII art to SVG:
``` aasvg
+----------+ +----------+ +----------+
| Client +------>| Server +------>| Database |
+----------+ +----+-----+ +----------+
|
v
+----+-----+
| Cache |
+----------+
``` Result:
Terminal recordings
Use ddc term to start a recorded terminal session. Exit with Ctrl+D,
then paste your clipboard's contents straight into your markdown:
dodeca › redocs 1 1 1 › 22:35 🪴
› ls -lhA | head -5
Permissions Size User Date Modified Name
d r w x r - x r - x - amos 21 Dec 2025 .cargo
d r w x r - x r - x - amos 5 Feb 11:04 .claude
d r w x r - x r - x @ - amos 28 Dec 2025 .conductor
d r w x r - x r - x - amos 18 Jan 20:20 .config
dodeca › redocs 1 1 1 › 22:35 🪴
› Table of contents
Headings in your markdown automatically generate a table of contents, accessible in templates as page.toc or section.toc.