Markdown Table Generator

Paste CSV or TSV and get a padded GitHub-Flavored Markdown table. RFC 4180 parsing, delimiter auto-detection, pipe escaping and column alignment control.

Input

Paste delimited data — comma, semicolon or tab separated — and get back a GitHub-Flavored Markdown table you can drop straight into a README, a pull request description or an issue comment. The parser follows RFC 4180, so quoted fields, doubled quotes and even line breaks inside quotes survive the trip intact. Every column is padded to the same width, which keeps the raw Markdown legible long after it has been committed.

What is a Markdown table generator?

A Markdown table generator converts rows of delimited data into the pipe-and-dash syntax that GitHub-Flavored Markdown uses for tables. Writing that syntax by hand is tedious: every cell needs surrounding pipes, the second line has to be a separator row, and any pipe character inside your data breaks the layout. This tool handles the mechanical parts — parsing the delimiter, escaping conflicting characters, building the separator row and aligning the columns — so you only supply the data.

How the table generator works

The pasted text is parsed with an RFC 4180 reader rather than a naive split: a quoted field may contain the delimiter, a line break, or a doubled quote that means one literal quote. If you leave the delimiter on automatic, the first line is scanned for tabs, semicolons and commas and the most frequent one wins. Each cell is then escaped for Markdown — a raw pipe becomes \| and internal line breaks collapse to a space, because a GFM table row must live on one line. Finally every column is padded to the width of its widest cell, so the raw Markdown stays readable in a diff even though the rendered table is unaffected by padding.

Features

RFC 4180 parsing: quoted fields, escaped double quotes ("" inside quotes) and newlines inside quotes are all understood.
Delimiter auto-detection from the first line, testing tab, semicolon and comma — overridable at any time.
Automatic escaping: pipes become \| and newlines inside a cell are flattened, since either would break the table.
Equal-width column padding, so the raw Markdown stays readable in a diff and not just in the rendered view.

How to use the Markdown table generator

1

Paste or type your delimited data into the data field — one record per line, exported CSV and TSV both work.

2

Leave the delimiter on auto-detect, or pick comma, semicolon or tab explicitly if your first line is ambiguous.

3

Choose an alignment — left, center or right — to set the markers written into the separator row.

4

Keep the first-row-as-header option on when your first line contains column names, then copy the padded Markdown from the output.

Common mistakes

Pasting data whose first line uses a different separator than the rest — auto-detection reads only that first line, so pick the delimiter manually when the header looks unusual.
Escaping pipes yourself before pasting: the tool already writes \|, so pre-escaped input ends up double-escaped in the output.
Expecting a multi-line cell to stay multi-line — a newline inside a quoted field is flattened, because Markdown tables cannot contain line breaks in a cell.

Examples

name,role / Ada,Engineer -> | name | role | | ---- | -------- | | Ada | Engineer |
id,note / 1,"a, b" -> | id | note | | -- | ---- | | 1 | a, b |
cmd,desc / ls | wc,count files -> | cmd | desc | | -------- | ----------- | | ls \| wc | count files |

See also

  • CSV to JSONNeed the same rows as structured data instead of a table? Convert them to JSON.
  • Trim WhitespaceStray leading spaces in the pasted rows will show up in every cell — strip them first.

FAQ

How does the delimiter auto-detection work?

Auto-detect looks at the first line only and checks it for a tab, then a semicolon, then a comma. That covers most spreadsheet exports, but if your header row happens to contain a comma inside a quoted label while the file is really semicolon-separated, choose the delimiter explicitly instead.

What happens to a pipe character or a line break inside a cell?

A pipe is rewritten as \| so it renders as a literal character instead of ending the cell. A newline inside a quoted field is parsed correctly as part of one cell, then flattened, because a Markdown table row must occupy a single line.

Does the alignment setting change my data?

No. Alignment only changes the separator row directly under the header: left writes ---, center writes :-:, and right writes --:. Your cell values are untouched; the markers are a rendering hint that Markdown viewers apply when they draw the table.

Are quoted fields and doubled quotes handled correctly?

Yes — the parser follows RFC 4180. A field wrapped in double quotes can contain the delimiter, and a doubled double quote ("") inside such a field is read as one literal quote character. That means a value like "a, b" stays a single cell rather than splitting into two.