Skip to content

Markdown Syntax: Tables

Martin Mitáš edited this page Dec 7, 2016 · 3 revisions

(Requires flag MD_FLAG_TABLES.)

Basic table example of a table with two columns and three lines (when not counting the header) is as follows:

| Column 1 | Column 2 |
|----------|----------|
| foo      | bar      |
| baz      | qux      |
| quux     | quuz     |

The leading and succeeding pipe characters (|) on each line are optional:

Column 1 | Column 2
---------|---------
foo      | bar
baz      | qux
quux     | quuz

However for one-column table, at least one of those has to be used, otherwise it would be parsed as a Setext title followed by paragraph.

Leading and trailing whitespace in a table cell is ignored and the columns do not need to be aligned.

Column 1 |Column 2
---|---
foo | bar
baz| qux
quux|quuz

It's possible to specify alignment of a table column by colon in the line separating table head from its body.

| Column 1 | Column 2 | Column 3 | Column 4 |
|----------|:---------|:--------:|---------:|
| default  | left     | center   | right    |

To include a literal pipe character in any cell, it has to be escaped.

Column 1 | Column 2
---------|---------
foo      | bar
baz      | qux \| xyzzy
quux     | quuz

Contents of each cell is parsed as an inline text which may contents any inline Markdown spans like emphasis, strong emphasis, links etc.

Column 1 | Column 2
---------|---------
*foo*    | bar
**baz**  | [qux]
quux     | [quuz](/url2)

[qux]: /url