Markdown Table Generator
Generate Markdown table syntax from column and row definitions
About This Tool
Define columns and rows in the form, then copy the generated Markdown table. Add or remove columns on the fly, set alignment per column (left, center, right), and the pipe-and-dash syntax updates as you type.
Faster than counting pipes by hand, especially for tables with more than four columns. Output works in GitHub, GitLab, Discord, Notion, and any other Markdown renderer that supports GFM tables.
A preview pane shows what the rendered table will look like, which is useful for catching alignment mistakes before you paste into a PR description.
Markdown tables in GFM (GitHub Flavored Markdown) use pipe characters as column separators and a header-row delimiter line built from dashes and optional alignment colons. The first row is the header. The second row sets alignment per column: `---` is left or default, `:---` left, `---:` right, `:---:` center. Rows below are body content. Whitespace inside cells is collapsed by the renderer; trailing pipes are optional but the tool emits them for readability.
Worked example. Three columns, mixed alignment:
| Tool | Type | Stars | |:-----|:----:|------:| | esbuild | bundler | 38k | | Vite | bundler | 64k | | Rollup | bundler | 24k |
The renderer left-aligns the first column, centers the second, right-aligns the third (good for numbers). Inside cells, the tool escapes literal pipes as `\|` so a value like `a|b` renders correctly instead of breaking the table. Newlines inside cells are not allowed in standard Markdown tables — use `<br>` if you need a line break, but be aware that some renderers strip it.
Limitations worth knowing. Markdown tables don't support row spans, column spans, or nested tables. If you need any of those, switch to inline HTML — most renderers happily pass through `<table>` markup. Notion, Slack, Discord, and Linear render GFM tables; some support extensions (alignment, escaping); some do not. The tool emits clean GFM that the strictest renderer accepts, then preview shows it in a generic GFM rendering so you can spot ugliness before you paste.
A quirk people miss: the column count is set by the header row. If a body row has fewer cells than the header, the missing cells render empty. If a body row has more cells, the extras are ignored. Both are silent failures; the tool warns when row widths don't match the header so you catch it before the PR comment looks broken.
The about text and FAQ on this page were drafted with AI assistance and reviewed by a member of the Coherence Daddy team before publishing. See our Content Policy for editorial standards.