D

Embeds & Math

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:

  1. Drag and drop onto the document

  2. Paste from the clipboard (screenshots, copied images)

  3. `/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, \theta

  • Fractions: \frac{a}{b}

  • Sums / integrals: \sum_{i=1}^{n}, \int_0^1

  • Matrices: \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.