Skip to content

Markdown Table Generator

Build tables visually, export GitHub Flavored Markdown instantly.

Columns:3
Rows:3

How the Markdown Table Generator Works

Click any cell in the grid to edit it. The first row is the header (displayed with a distinct background). Use the + and − buttons to add or remove columns and rows — up to an 8×8 grid. As you type, the Markdown output below updates in real time.

Choose alignment globally (all columns use the same setting) or per column (each column has its own L/C/R toggle). The "Pretty print" mode pads cells with spaces so the pipe characters align vertically — much easier to read in a text editor. The compact mode outputs minimal-width pipes, which is smaller but harder to scan.

The GFM Table Format Explained

GitHub Flavored Markdown (GFM) tables use a simple pipe-delimited syntax. The first row is always the header row. The second row is the separator row, which uses dashes (---) to indicate column boundaries. Optional colons control alignment: `:---` for left, `:---:` for center, `---:` for right. Every following row is a data row. Leading and trailing pipes are optional but strongly recommended for clarity.

GFM tables are supported on GitHub, GitLab, Bitbucket, Notion, Obsidian, Bear, VS Code Markdown preview, and most modern Markdown renderers. Standard CommonMark does not include tables, so they may not render in all environments. The syntax is clean enough that even non-rendered plain text is still readable.

Tips for Better Markdown Tables

Keep cells concise. Very long cell content makes tables hard to read even when pretty-printed. If a column contains mostly numbers, right-align it, it makes the values easier to compare visually. Use center alignment sparingly, typically only for short labels or status values.

Inline Markdown formatting works inside table cells: **bold**, *italic*, `code`, and [links](url) all render correctly. However, you cannot use block-level elements like headings, lists, or code fences inside a cell. If you need complex content in a table, consider writing a plain HTML table in your Markdown file — most renderers support raw HTML passthrough.

When to Use Markdown Tables

Markdown tables work best for README files (GitHub, GitLab), documentation sites (MkDocs, Docusaurus, Hugo), pull request descriptions, Notion pages, and any platform that renders CommonMark or GFM (GitHub Flavored Markdown). They're ideal for comparison data, API reference tables, feature matrices, and structured datasets that need to be human-readable in raw form.

Pair this tool with Text Diff to review changes between table versions, Lorem Ipsum Generator to fill placeholder cells, Slug Generator for column IDs, or Case Converter to normalise header names.

Markdown Table Syntax Reference

A GFM table uses | to separate columns and --- for the header separator row. Colons control alignment: --- (left), :---: (center), ---: (right). Example:

| Name   | Score | Grade |
|--------|------:|:-----:|
| Alice  |    95 |   A   |
| Bob    |    82 |   B   |

Not all Markdown flavors support tables — standard CommonMark does not, but GFM (GitHub), MultiMarkdown, and Pandoc all do. When in doubt, use an HTML <table> for maximum compatibility.

Frequently Asked Questions

What is GFM (GitHub Flavored Markdown)?
GFM is a superset of standard Markdown developed by GitHub. It adds tables, task lists, strikethrough, fenced code blocks, and autolinks. GFM tables use pipes as column separators and dashes with optional colons for alignment. It is supported by GitHub, GitLab, Notion, Obsidian, and most modern Markdown tools.
How do I use a Markdown table in a GitHub README?
Copy the generated Markdown and paste it directly into your README.md file. GitHub will render it as a formatted HTML table. The table must have a header row, a separator row (dashes), and at least one data row. Leading and trailing pipes are optional but recommended.
What are the limits of Markdown tables?
GFM tables cannot span multiple columns or rows (no colspan/rowspan), and cells cannot contain block-level elements like lists or headings. There is no built-in support for merged cells or complex layouts. For complex tables, use raw HTML inside your Markdown file.
What is GitHub Flavored Markdown (GFM)?
GitHub Flavored Markdown (GFM) is GitHub's extension of the CommonMark specification. It adds tables, task lists, strikethrough, and autolinks. The table syntax uses pipe characters (|) and hyphens (---) for alignment. GFM tables are supported by GitHub, GitLab, VS Code, Notion, and most documentation tools.
How do I control column alignment in Markdown tables?
Column alignment is set in the separator row using colons (:). Left align: |:---|, center: |:---:|, right: |---:|. The default (no colon) is usually left-aligned. This generator lets you set alignment per column or apply one alignment globally.
Do Markdown tables work in all Markdown editors?
No. Tables are a GitHub Flavored Markdown (GFM) extension, not part of the original CommonMark spec. They work in GitHub, GitLab, Notion, Obsidian, MkDocs, and most modern editors, but not in strict CommonMark renderers. If compatibility is critical, use an HTML table instead.
How do I include a pipe character inside a table cell?
Escape it with a backslash: \|. This tells the Markdown parser that the pipe is literal content, not a column separator. Some parsers also accept HTML entity &#124; as an alternative.

You might also need

See all tools →

Complementary tools based on what you're doing

By Bam's Thinkery — Updated