The Tables extension adds the ability to create tables in Markdown documents.

This extension is included in the standard Markdown library.


Tables are defined using the syntax established in PHP Markdown Extra.

Thus, the following text (taken from the above referenced PHP documentation):

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell

will be rendered as:

      <th>First Header</th>
      <th>Second Header</th>
      <td>Content Cell</td>
      <td>Content Cell</td>
      <td>Content Cell</td>
      <td>Content Cell</td>

See Also

The Attribute Lists extension includes support for defining attributes on table cells.


See Extensions for general extension usage. Use tables as the name of the extension.

See the Library Reference for information about configuring extensions.

The following options are provided to change the default behavior:

  • use_align_attribute: Set to True to use align instead of an appropriate style attribute

    Default: 'False'

A trivial example:

markdown.markdown(some_text, extensions=['tables'])


For an example, let us suppose that alignment should be controlled by the legacy align attribute.

>>> from markdown.extensions.tables import TableExtension
>>> html = markdown.markdown(text,
...                 extensions=[TableExtension(use_align_attribute=True)]
... )