Markdown Table Generator
Fill in a grid and get a clean Markdown table you can paste anywhere.
Markdown
| Name | Role | Location | | :--- | :--- | :--- | | Alice | Engineer | NYC | | Bob | Designer | LA |
Writing tables in Markdown
Markdown tables use pipes (|) to separate columns and a divider row of dashes under the header. Colons in that divider set column alignment: :--- left, :---: center, and ---: right. This generator handles the spacing and escapes any literal pipes in your text, so the output works in GitHub, GitLab, and most Markdown renderers. Everything stays in your browser.
Related: the CSV to Markdown table converter, Markdown to text, and the Markdown previewer.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Building a table in a grid rather than typing pipes by hand.
- Setting column alignment without remembering the colon syntax.
- Adding a row or a column to a table without realigning everything.
- Producing a table for a README or a pull-request description.
- Getting a well-formed table on the first attempt.
Frequently Asked Questions
- Why does a Markdown table need the row of dashes?
- Because that row is what identifies the block as a table at all. GitHub Flavored Markdown requires a delimiter row directly under the header — without it the whole thing renders as one paragraph of pipes. It is also where alignment is declared, so it does two jobs at once.
- How is column alignment set?
- By colons in the delimiter row: `:---` for left, `:---:` for centre, `---:` for right. The number of dashes is irrelevant — one is enough — and the colons are the entire syntax. There is no way to set a column width; that is the renderer's decision.
- What happens to a pipe character inside a cell?
- It is escaped as `\|`, because an unescaped pipe would start a new column and shift every cell after it. This is the single most common way a hand-written table breaks, and it happens most often with a code snippet or a regex in a cell.
- Can a cell contain a line break?
- Not directly — the row ends at the newline. The usual workaround is an inline `<br>` tag, which GitHub renders, though a strict CommonMark processor with HTML disabled will show it literally. Anything genuinely multi-line usually wants a list or a code block rather than a table.
- Do the pipes need to line up?
- No — the parser does not care about alignment or padding at all, so a table with ragged pipes renders identically. Padding is purely for the human reading the source, which is why generated tables pad the columns even though nothing requires it.
Common errors and gotchas
- Forgetting to escape a literal pipe inside a cell, which splits it into two columns.
- Producing a table too wide for the destination, where Markdown has no horizontal scrolling.
- Omitting the header row, which a Markdown table needs to render at all.
- Building a table wider than the destination renders, which has no scrolling to fall back on.
- Assuming source alignment affects rendering, when it is only for humans reading the diff.
Related Developer Utilities tools
RegExp Tester
Test regular expressions and inspect matches locally.
Regex Visualizer
Visual regex pattern diagram with live match highlighting and capture group annotations.
Subnet Calculator
Compute CIDR subnets, usable hosts, and network ranges.
Cron Parser
Translate cron syntax into plain English.
URL Parser
Break a URL into protocol, host, path, and query parts.
HTML Previewer
Paste HTML and see it rendered live in a safe, sandboxed preview.
HTTP Status Code Reference
Search and look up every HTTP status code and its meaning.
MIME Type Lookup
Find the MIME type for a file extension, or the extensions for a MIME type.