Skip to main content

Standard Markdown tables

The separator row (|---|---|) marks the first row as a header. Without a separator, all rows are treated as data rows.

Tables with inline formatting

Table cells support all inline formatting:

Images in table cells

Embed images directly in table cells:
Image attributes width and height are supported inside table cells.

Form fields in table cells

A table cell can contain one form field instead of text or an image:
Use commas between select or checkbox options inside a table cell because the pipe character is the table column delimiter. See Form Fields for all field types and properties.

Table directive

For full styling control, captions, anchors, and column widths, wrap your table in a :::table{attrs} directive:

Column widths

Use columnWidths to control table layout:
Widths are comma-separated and map from left to right: Mixed layouts are supported. For example, columnWidths="4,1fr,2fr" keeps the first column fixed at 4cm; the remaining space is then split into one share for the second column and two shares for the third column.
If fewer widths than columns are provided, the remaining columns use auto. More widths than columns are rejected during validation.

Invisible tables (layout tables)

Remove all borders and backgrounds to use tables for layout purposes:

Hidden headers

Hide the header row while keeping it for structure:

Table captions

Add a caption for automatic numbering in the List of Tables:
This renders as: Table 1: Revenue by Quarter The caption prefix (e.g., "Table", "Tabelle") and styling (font, alignment, color) are configured in your document’s style settings.

Anchors for cross-references

Add an anchor attribute to reference the table from elsewhere:
Then reference it:
See References & Anchors for all cross-reference options.

Attribute reference

General attributes

Header styles

Row styles

Border styles


Full example