induwara.lk
induwara.lkDeveloper · Text

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.

By Induwara AshinsanaUpdated Jul 10, 2026
Build your Markdown table
Start from
3 × 3

Delimiter auto-detected (tab beats comma). Quoted fields keep their commas, per RFC 4180.

| Feature | Free plan | Pro plan |
| :------ | :-------: | :------: |
| Storage | 5 GB      | 1 TB     |
| Support | Community | Priority |

Rendered preview

FeatureFree planPro plan
Storage5 GB1 TB
SupportCommunityPriority
Delimiter syntaxLeft:---Center:--:Right---:None----

Rules from the GFM tables spec & RFC 4180. Runs entirely in your browser.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

API table — left + center aligned, padded

A literal pipe in a cell is escaped; columns are padded so the source lines up.

Input

Grid (header + 2 rows), col 1 left, col 2 center:
Method    | Returns
getUser   | User | null   ← note the literal pipe
listUsers | User[]

Output

| Method    | Returns      |
| :-------- | :----------: |
| getUser   | User \| null |
| listUsers | User[]       |

CSV import — right-aligned numbers, compact

RFC 4180 keeps the quoted comma inside one cell; compact mode uses minimal dashes.

Input

Pasted CSV, col 3 set to right:
Item,Qty,Unit Price
"Cable, HDMI",2,1450
Adapter,5,650

Output

| Item | Qty | Unit Price |
| --- | --- | ---: |
| Cable, HDMI | 2 | 1450 |
| Adapter | 5 | 650 |

Multi-line cell — newline becomes <br>

GFM disallows hard line breaks in a cell, so a newline is converted to an inline break.

Input

A single cell containing two lines:
Line one
Line two

Output

Sanitized cell → Line one<br>Line two
(renders as two stacked lines inside the cell)

Frequently asked questions

Sources & references

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

Rate this tool
Be the first to rate

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.