🔨 All in one Utilities

HTML Table to Markdown Converter

Great utilities that help you design, program and maintain your website

utilities for you to make a website
Home » Utilities » HTML Table to Markdown Converter

HTML Table to Markdown Converter

Paste a whole page if you like — every table in it is converted.
Tables found
Rows converted

Note: Markdown has no syntax for merged cells. A colspan becomes one cell plus empty ones so the grid stays aligned — if the merge itself carried meaning, restate it in the cell text.

Markdown tables are a subset of what HTML tables can express, so this conversion is lossy in specific, predictable ways — and knowing which ones saves you from discovering them in a rendered README.

Markdown has no concept of a cell spanning columns or rows. A colspan of three becomes one cell followed by two empty ones, which keeps the grid aligned even though the visual merge is gone. Nested tables cannot be represented at all. Neither can a caption, though it converts cleanly to a bold line above the table, which is what most people want anyway.

What does survive is alignment, expressed in the separator row with colons, and inline formatting. Bold, italic, code and links inside cells are converted rather than stripped, since those are what carry meaning in a documentation table. A line break inside a cell becomes a br tag, because Markdown tables cannot contain an actual newline — every row has to be one line, and a stray break silently ends the table there.

Column padding is on by default. It makes no difference to the rendered output and a large difference to the source: an unpadded table is unreadable in a diff, and a padded one lets a reviewer see which column changed. The trade-off is that adding a longer value later means re-padding the whole column, which is why the option is there to turn off.

CSV and JSON output are included for when the destination is not documentation at all.

Frequently Asked Questions

What happens to merged cells?

A colspan or rowspan becomes the content in the first cell followed by empty cells filling the rest of the span. Markdown has no syntax for merging, so this keeps the column count correct at the cost of the visual merge. If the merge carried meaning, restate it in the cell text.

Why did my table break at one row?

Almost certainly a line break inside a cell. A Markdown table row must be a single line, so an actual newline in a cell ends the table there and everything after it renders as plain text. The converter turns those into br tags for that reason.

Do I need the column padding?

Not for the rendered result — it is identical either way. It matters in the source: a padded table is readable in a pull request diff and an unpadded one is not. Turn it off if the table is generated and never read as text.

Are links and bold text preserved?

Yes. Anchors become Markdown links, and strong, em and code elements convert to their Markdown equivalents. Anything with no Markdown equivalent — a span with a class, an image with sizing attributes — falls back to its text content.

Related Utilities