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)?
How do I use a Markdown table in a GitHub README?
What are the limits of Markdown tables?
What is GitHub Flavored Markdown (GFM)?
How do I control column alignment in Markdown tables?
Do Markdown tables work in all Markdown editors?
How do I include a pipe character inside a table cell?
\|. This tells the Markdown parser that the pipe is literal content, not a column separator. Some parsers also accept HTML entity | as an alternative.You might also need
See all tools →Complementary tools based on what you're doing
By Bam's Thinkery — Updated