## Tables (extension) GFM enables the `table` extension, where an additional leaf block type is available. A [table](@) is an arrangement of data with rows and columns, consisting of a single header row, a [delimiter row] separating the header from the data, and zero or more data rows. Each row consists of cells containing arbitrary text, in which [inlines] are parsed, separated by pipes (`|`). A leading and trailing pipe is also recommended for clarity of reading, and if there's otherwise parsing ambiguity. Spaces between pipes and cell content are trimmed. Block-level elements cannot be inserted in a table. The [delimiter row](@) consists of cells whose only content are hyphens (`-`), and optionally, a leading or trailing colon (`:`), or both, to indicate left, right, or center alignment respectively. ```````````````````````````````` example | foo | bar | | --- | --- | | baz | bim | .
foo bar
baz bim
```````````````````````````````` Cells in one column don't need to match length, though it's easier to read if they are. Likewise, use of leading and trailing pipes may be inconsistent: ```````````````````````````````` example | abc | defghi | :-: | -----------: bar | baz .
abc defghi
bar baz
```````````````````````````````` Include a pipe in a cell's content by escaping it, including inside other inline spans: ```````````````````````````````` example | f\|oo | | ------ | | b `\|` az | | b **\|** im | .
f|oo
b | az
b | im
```````````````````````````````` The table is broken at the first line not containing an unescaped `|`: ```````````````````````````````` example | abc | def | | --- | --- | | bar | baz | > bar .
abc def
bar baz

bar

```````````````````````````````` ```````````````````````````````` example | abc | def | | --- | --- | | bar | baz | bar .
abc def
bar baz

bar

```````````````````````````````` ```````````````````````````````` example | abc | def | | --- | --- | | bar | baz | bar .
abc def
bar baz

bar

```````````````````````````````` The header row must match the [delimiter row] in the number of cells. If not, a table will not be recognized: ```````````````````````````````` example | abc | def | | --- | | bar | .

| abc | def | | --- | | bar |

```````````````````````````````` The remainder of the table's rows may vary in the number of cells. If there are a number of cells fewer than the number of cells in the header row, empty cells are inserted. If there are greater, the excess is ignored: ```````````````````````````````` example | abc | def | | --- | --- | | bar | | bar | baz | boo | .
abc def
bar
bar baz
```````````````````````````````` If there are no rows in the body, no `` is generated in HTML output: ```````````````````````````````` example | abc | def | | --- | --- | .
abc def
```````````````````````````````` Here are some non-tables: ```````````````````````````````` example | Not enough table | to be considered table | | Not enough table | to be considered table | | Not enough table | to be considered table | | ---- | --- | .

| Not enough table | to be considered table |

| Not enough table | to be considered table | | Not enough table | to be considered table |

| ---- | --- |

```````````````````````````````` A table may be indented up to three spaces: ```````````````````````````````` example a | b | c - | - | - .
a b c
```````````````````````````````` ```````````````````````````````` example a | b | c - | - | - .
a | b | c
- | - | -
````````````````````````````````