Markdown · First row followed by a delimiter row

Tables

GFM tables use pipes and a delimiter row to define columns and alignment.

Key facts

HeaderFirst row followed by a delimiter row
Delimiter<code>---</code> per column
Alignment<code>:---</code>, <code>:---:</code>, <code>---:</code>
Cell separatorPipe <code>|</code>
Escaping<code>\|</code> inside a cell
StandardGFM extension, not CommonMark

A delimiter row is mandatory

A table starts with a header row and a delimiter row. Without the delimiter, the text is just paragraphs with pipes. Cells are separated by pipes, and leading or trailing pipes are optional but improve readability.

Column count is set by the header. A row with fewer cells is padded; a row with more is truncated by most renderers. Inline formatting works inside cells, but block content such as lists or fenced code does not.

Alignment and escaping

Colons in the delimiter row set alignment: left, center or right. The syntax controls text alignment only, not column widths. Widths are decided by the renderer or by CSS.

A literal pipe inside a cell must be escaped as \| or placed inside a code span. Tables are a GFM extension; plain CommonMark renderers may show the raw pipes.

Frequently asked questions

Why is my table not rendering?

The delimiter row is missing or malformed, or the renderer does not support GFM tables.

Can a table cell contain a list?

Not in GFM. Cells hold inline content; use HTML or restructure the document for block content.

New tools, straight to your inbox

One short email when we add tools worth using. No spam, unsubscribe anytime.