Markdown · First row followed by a delimiter row
Tables
GFM tables use pipes and a delimiter row to define columns and alignment.
Key facts
| Header | First row followed by a delimiter row |
|---|---|
| Delimiter | <code>---</code> per column |
| Alignment | <code>:---</code>, <code>:---:</code>, <code>---:</code> |
| Cell separator | Pipe <code>|</code> |
| Escaping | <code>\|</code> inside a cell |
| Standard | GFM 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.