Developer tools

Markdown table generator

Turn CSV into a Markdown, HTML, LaTeX or plain-text table, with alignment.

Markdown table generator
Esc to restore

Your inputs

Headings in the first row; quote cells that contain the separator. Up to 1 MB.

Results update as you type. Larger files run when you press Update result.

Your result

Your result will appear here.

More actions

Your inputs stay in this browser. Nothing is uploaded or saved.

A clear answer. Here’s how.

Reads the CSV with standard quoting rules and writes each row as a table row. Markdown output follows GitHub Flavored Markdown: a pipe-separated heading row, a delimiter row whose colons set alignment (:--- left, :---: centre, ---: right) and one row per record, with columns padded so the source reads cleanly. Pipes inside cells are escaped and line breaks become <br>. HTML escapes &, < and >, LaTeX escapes its special characters, and the plain-text grid draws +---+ borders. Automatic alignment right-aligns a column when every non-empty cell is a number.

How this is checked

3 reference checks passed These 3 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.

See the checks and where each expected answer comes from
  1. Case 1

    Inputs
    CSV data (first row is the headings) Item,Qty,Price Apple,3,1.20 Pear,10,0.95Output format markdownColumn alignment auto
    Expected, and what Toolmoz gave
    text expected | Item | Qty | Price | | :---- | --: | ----: | | Apple | 3 | 1.20 | | Pear | 10 | 0.95 | , Toolmoz | Item | Qty | Price | | :---- | --: | ----: | | Apple | 3 | 1.20 | | Pear | 10 | 0.95 | Rows expected 2, Toolmoz 2Columns expected 3, Toolmoz 3
    Where the expected answer comes from
    Hand-written GFM table: column widths are the longest cell (5, 3 and 5), numbers right-aligned, delimiter row :---- / --: / ----:
    Allowed difference
    exact
  2. Case 2

    Inputs
    CSV data (first row is the headings) Item,Qty,Price Apple,3,1.20 Pear,10,0.95Output format htmlColumn alignment auto
    Expected, and what Toolmoz gave
    text expected <table> <thead> <tr><th>Item</th><th style="text-align:right">Qty</th><th style="text-align:right">Price</th></tr> </thead> <tbody> <tr><td>Apple</td><td style="text-align:right">3</td><td style="text-align:right">1.20</td></tr> <tr><td>Pear</td><td style="text-align:right">10</td><td style="text-align:right">0.95</td></tr> </tbody> </table> , Toolmoz <table> <thead> <tr><th>Item</th><th style="text-align:right">Qty</th><th style="text-align:right">Price</th></tr> </thead> <tbody> <tr><td>Apple</td><td style="text-align:right">3</td><td style="text-align:right">1.20</td></tr> <tr><td>Pear</td><td style="text-align:right">10</td><td style="text-align:right">0.95</td></tr> </tbody> </table>
    Where the expected answer comes from
    Hand-written HTML table with thead and tbody and right-aligned numeric columns
    Allowed difference
    exact
  3. Case 3

    Inputs
    CSV data (first row is the headings) Item,Qty,Price Apple,3,1.20 Pear,10,0.95Output format asciiColumn alignment auto
    Expected, and what Toolmoz gave
    text expected +-------+-----+-------+ | Item | Qty | Price | +-------+-----+-------+ | Apple | 3 | 1.20 | | Pear | 10 | 0.95 | +-------+-----+-------+ , Toolmoz +-------+-----+-------+ | Item | Qty | Price | +-------+-----+-------+ | Apple | 3 | 1.20 | | Pear | 10 | 0.95 | +-------+-----+-------+
    Where the expected answer comes from
    Hand-drawn grid: border segments are the column width plus two spaces (7, 5 and 7)
    Allowed difference
    exact

What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.

See a worked example

Worked example

A fixed demonstration, separate from the values you enter above.

CSV data (first row is the headings)
Item,Qty,Price
Apple,3,1.20
Pear,10,0.95
Column separator
Comma
Output format
Markdown (GitHub style)
Column alignment
Automatic: numbers to the right

Example result

Rows
2
Columns
3
Characters in the table
96

Pipes inside cells are escaped and line breaks become <br>. Numeric columns are right-aligned when alignment is automatic. Column padding assumes narrow characters, so East Asian text may look uneven in a monospace font while still rendering correctly.