Markdown Table Generator
Build a table in a grid and get clean, valid GitHub Flavored Markdown to paste into a README, issue, blog post, or Notion. Set per-column alignment, import CSV or Excel data, and export Markdown, HTML, or CSV — all in your browser, nothing uploaded.
How it works
Markdown table syntax is fiddly to hand-type: the delimiter row, the escaped pipes, and the per-column alignment colons are all easy to get wrong. This tool models your table as a grid of cells and writes the syntax deterministically, following the GitHub Flavored Markdown tables extension. Tables are not part of core Markdown — the CommonMark spec has no table syntax at all — so this is strictly the GFM extension that GitHub, GitLab, Notion, and Obsidian understand.
- Sanitize each cell. Every literal pipe
|is escaped to\|so it is not read as a column separator. GFM forbids hard line breaks in a cell, so a newline is converted to an inline<br>, and leading and trailing whitespace is trimmed. - Emit the header row. The header cells are joined with
|separators. When you turn the header off, an empty header row is written instead, because a GFM table always needs a header plus a delimiter row. - Emit the delimiter row. This row defines the columns and their alignment. For each column the tool writes a run of dashes with colons per the alignment: left is
:---, center is:--:, right is---:, and none is a plain---. GFM requires at least one dash; this tool uses a minimum of three. - Emit the body rows with the same join logic. In padded mode each column is stretched with spaces to its widest cell so the raw source lines up. Padding is purely cosmetic — the GFM spec ignores it when rendering — so padded and compact output produce an identical table.
- Import path. Pasted CSV, TSV, or Excel-clipboard text is parsed per RFC 4180: the delimiter is auto-detected (a tab beats a comma), double-quoted fields may contain the delimiter or newlines, and a doubled quote
""becomes a single literal quote.
As a correctness check, the generated Markdown is parsed straight back into a grid and compared to your input — the column count and every column's alignment must match. When they do, the calculator shows a GFM round-trip verified badge, confirming the output is syntactically valid GitHub Flavored Markdown.
Worked examples
Frequently asked questions
Sources & references
- GitHub Flavored Markdown Spec — Tables (extension)
- CommonMark Spec 0.31.2 — base Markdown rules
- RFC 4180 — Common Format and MIME Type for CSV Files
The table syntax and CSV parsing rules on this page were last cross-checked against these specifications on 2026-07-10, and the output is verified against the GFM reference renderer.
Related tools
Comments & feedback
Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a bug, edge case, or want to suggest an improvement?
Email me at [email protected] — most fixes ship within 24 hours.