Skip to main content
Every block is a tagged object with a type field. You pass blocks to page.content, and each block’s optional style overrides its role style for that one block. Here is the full union once, then a section per block below.

heading

A title with a level from 1 to 6. text accepts inline content.

paragraph

A run of body text. text accepts inline content.

code

A tinted monospace block. language is a label only and does not enable syntax highlighting.

formula

LaTeX, typeset to vector paths. See Formulas for math fonts.

list

An ordered or unordered list. Each item is inline content.

image

References a file path or a name registered with load_image. width and height size it.

divider

A horizontal rule.

spacer

Vertical space sized by size.

note

A callout box. variant is one of info, warn, success, or muted. Both text and title accept inline content.

table

Rows of cells with optional headers and column sizing. See Tables for cell shapes and column widths.

chart

A native vector chart. chart is the chart kind and data holds the values. See Charts for chart kinds and data shapes.

group

Keeps its children together across page breaks, so a heading and its paragraph never split. gap adds space between children.
Anywhere a block takes text, it accepts inline content: a string, one inline node, or an array mixing both. See Inline content.