📋 Markdown Table Generator
By ToolNimba Web Dev Team · Updated 2026-06-19
The top row is the header. Use the selector above each column to set its alignment.
Set the size, pick alignments, type your text, then copy the Markdown.
Markdown tables are quick to write but fiddly to align by hand, every cell needs a pipe, the header needs a separator row, and getting the colons right for alignment is easy to fumble. This generator gives you an editable grid: pick how many rows and columns you need, set each column to left, center or right, type your content, and copy clean GitHub-flavored Markdown. A live preview shows exactly how the table will render before you paste it into a README, an issue, a wiki page or your docs.
What is the Markdown Table Generator?
A Markdown table is made of three parts: a header row, a separator (or delimiter) row, and one or more body rows. Each row is a line of cells divided by the pipe character (|). The separator row is what tells the Markdown parser the block is a table rather than ordinary text, it sits directly under the header and contains a run of hyphens for each column, like | --- | --- | --- |. Without that separator row, the lines render as plain paragraphs with literal pipes.
Alignment is controlled entirely by colons in the separator row. A colon on the left (:---) left-aligns the column, a colon on the right (---:) right-aligns it, and a colon on both sides (:---:) centers it. A plain run of hyphens (---) leaves alignment to the renderer default, which is usually left. The alignment applies to the whole column, header and body together, so you set it once per column. This generator writes those colons for you based on the dropdown above each column.
This tool emits GitHub-flavored Markdown (GFM), the table dialect understood by GitHub, GitLab, Bitbucket, most static-site generators and many note apps. GFM tables do not support merged cells, nested block elements or multi-line cells, so a line break inside a cell is collapsed to a space and any literal pipe in your text is escaped as backslash-pipe so it does not split the row. The optional padding makes the raw Markdown line up in a monospace editor, which is purely cosmetic, the rendered output is identical whether cells are padded or compact.
When to use it
- Adding a comparison or feature table to a GitHub README without hand-counting pipes.
- Documenting API parameters, config options or environment variables in project docs.
- Writing release notes, changelogs or issue comments that need a tidy data table.
- Building tables for static-site content (Hugo, Jekyll, Astro, Docusaurus) that accept Markdown.
- Converting a small set of values into Markdown you can paste into Notion, Obsidian or a wiki.
How to use the Markdown Table Generator
- Set the number of body rows and columns you need.
- Use the dropdown above each column to choose left, center, right or default alignment.
- Type your header labels in the top row, then fill the body cells below.
- Check the live preview to confirm the layout and alignment look right.
- Toggle outer pipes or cell padding to match your preferred style, then click Copy.
Formula & method
Worked examples
A 2-column table where the first column is left-aligned and the second is right-aligned.
- Header cells: Item and Price.
- Write the header row: | Item | Price |
- Set the separator with alignment colons: | :--- | ---: |
- Add a body row: | Coffee | 3.50 |
- Add another body row: | Sandwich | 6.00 |
Result: | Item | Price | | :--- | ---: | | Coffee | 3.50 | | Sandwich | 6.00 |
A cell contains a literal pipe character, for example the value a|b in a single-column table.
- Type a|b into the body cell.
- A raw pipe would be read as a column divider and break the row.
- The generator escapes it as a\|b so the parser treats it as text.
- The rendered cell shows a|b in one column, as intended.
Result: | Value | | --- | | a\|b |
Separator-row tokens and the alignment each one produces
| Alignment | Separator token | Header text aligns |
|---|---|---|
| Default | --- | Left (renderer default) |
| Left | :--- | Left |
| Center | :---: | Center |
| Right | ---: | Right |
Parts of a Markdown table and what each does
| Part | Role |
|---|---|
| Header row | The first line of cells, becomes the column titles. |
| Separator row | Hyphens and colons that mark the block as a table and set alignment. |
| Body rows | One line per data row, each with the same number of cells. |
| Pipe (|) | Divides one cell from the next; outer pipes are optional in GFM. |
Common mistakes to avoid
- Forgetting the separator row. A table needs the hyphen line directly under the header. Without it the lines render as ordinary text with visible pipes, not a table. This tool always inserts the separator for you.
- Mismatched cell counts per row. Every row should have the same number of cells as the header. A row with too few or too many cells can shift columns or drop data in some renderers. The fixed grid here keeps every row the same width.
- Putting alignment colons in the wrong place. Alignment is set only in the separator row, not the header or body. A colon on the left means left, on the right means right, on both sides means center. Adding colons elsewhere does nothing useful.
- Leaving a raw pipe inside a cell. An unescaped pipe inside text is read as a column break and splits the row. Escape it as backslash-pipe (\|). The generator does this automatically when you type a pipe in a cell.
- Expecting line breaks or merged cells. GFM tables are single-line cells with no rowspan or colspan. A line break is collapsed to a space. For multi-line content or merged cells you need raw HTML instead of a Markdown table.
Glossary
- Markdown
- A lightweight plain-text formatting syntax that converts to HTML, widely used for READMEs, docs and comments.
- GitHub-flavored Markdown (GFM)
- A superset of Markdown used by GitHub and many other tools that adds tables, task lists, strikethrough and more.
- Pipe
- The vertical bar character (|) used to separate one table cell from the next.
- Separator row
- The line of hyphens and optional colons between the header and body that marks a table and sets column alignment.
- Alignment
- Whether a column is left, center or right aligned, controlled by where colons sit in the separator row.
- Outer pipes
- The optional leading and trailing pipe on each row; GFM allows tables with or without them.
Frequently asked questions
What is a Markdown table generator?
It is a tool that lets you fill an editable grid and produces the matching GitHub-flavored Markdown table syntax for you, including the header separator row and any alignment colons. You get clean, copy-ready Markdown without counting pipes or formatting cells by hand.
How do I set column alignment in a Markdown table?
Alignment is set in the separator row using colons: :--- left-aligns a column, ---: right-aligns it, and :---: centers it, while plain --- uses the renderer default. This tool writes those tokens for you when you pick an alignment from the dropdown above each column.
Does this work with GitHub READMEs and issues?
Yes. The output is GitHub-flavored Markdown, the table dialect GitHub uses in README files, issues, pull requests, wikis and comments. It also works in GitLab, Bitbucket and most static-site generators and note apps that support GFM tables.
Can a table cell contain a pipe character?
A raw pipe inside a cell would be read as a column divider, so it must be escaped as backslash-pipe (\|). When you type a pipe into a cell, the generator escapes it automatically so your table structure stays intact.
Why are outer pipes and padding optional?
GFM accepts tables with or without leading and trailing pipes, and extra spaces are ignored when rendering. Padding and outer pipes only affect how the raw text looks in an editor; the rendered table is identical either way, so choose whichever style you prefer.
Is my table data sent anywhere?
No. The entire tool runs in your browser with plain JavaScript. Your cell content, column counts and alignment choices never leave your device and nothing is uploaded to a server.