Pull external content into your document and render rich math equations.
Embeds
Paste a URL on its own line — Dokki recognizes the source and renders the right embed automatically. Or use the slash menu (/embed) and pick a type.
Supported sources
Source | What renders |
|---|---|
YouTube | Inline player |
Twitter / X | Tweet card with media |
Figma | Live prototype or frame |
Google Docs / Sheets / Slides | Read-only embed |
GitHub | Repo card with stars/issues, or rendered file |
Loom | Inline video player |
CodePen / CodeSandbox | Live code preview |
Generic URL | Link card with title, description, favicon |
Embeds load lazily and respect the source's own permissions — a private Figma file shows the standard "request access" prompt instead of leaking content.
Images and video
Three ways to add an image:
Drag and drop onto the document
Paste from the clipboard (screenshots, copied images)
`/image` to upload from disk or paste a URL
Images get drag handles for resize. Click an image to set alignment (left, center, right, full width) and add a caption.
Videos and audio work the same way — upload via /video or /audio, or embed from a supported source.
Math (KaTeX)
Dokki uses KaTeX for math rendering — fast, server-renderable, and visually identical to LaTeX.
Inline math
Wrap an expression in single dollar signs: $E = mc^2$ renders as the equation inline.
Block math
Use /math or two dollar signs at the start of a line:
$$
\frac{\partial \mathcal{L}}{\partial \theta} = \mathbb{E}\left[\nabla_\theta \log \pi_\theta(a|s) \cdot R(\tau)\right]
$$Block math is centered on its own line, perfect for derivations and proofs.
What works
Greek letters:
\alpha,\beta,\Sigma,\thetaFractions:
\frac{a}{b}Sums / integrals:
\sum_{i=1}^{n},\int_0^1Matrices:
\begin{matrix} ... \end{matrix}Multi-line equations:
\begin{align} ... \end{align}
If KaTeX supports it, Dokki renders it. See the KaTeX support table for the full list.
Code blocks
Triple backticks followed by a language identifier creates a syntax-highlighted code block:
def hello(name: str) -> str:
return f"Hello, {name}"Supported languages include all the obvious ones plus shell, SQL, JSON, YAML, Markdown, Solidity, Rust, Go, Zig, and many more. Click the language label to change it after the fact.