Skip to content

HTML to Markdown

Converts pasted HTML or a saved page into clean Markdown — headings, nested lists, GFM tables, fenced code — dropping scripts and styles.

Converts a pasted page or a saved HTML file into Markdown, with tables becoming GFM pipe tables and code becoming fenced blocks with their language. Scripts, styles, forms and the head are dropped rather than carried across as noise.

🔒 Runs entirely in your browsermarkdownhtmlconvert

Drop an HTML file, or

paste HTML into the box below. The conversion happens in this tab.

HTML

Markdown

How to convert

Bullet marker
Line break <br>

The standard way, though editors often strip them.

Headings

What came across

headings

1

paragraphs

8

links

1

images

0

lists

2

tables

1

code blocks

1

Scripts, styles, forms and the head are not carried over; tables become GFM pipe tables and code becomes a fenced block with its language. Characters in the body that Markdown would read as syntax — * and # and the like — are escaped with a backslash.

Formatting Markdown has no way to express — text colour, alignment, fonts — is dropped. If you need it, keeping the HTML is the better answer.

How to use it

  1. Drop the file or paste the HTML

    A saved page is decoded with its own encoding detected — it knows UTF-8, UTF-16, CP949, Shift_JIS, GB18030, EUC-JP, and Windows-1252 — so an old Korean page stored as EUC-KR, or a Chinese one stored as GBK, comes through readable rather than as mojibake.

  2. Choose the line-break style

    Two trailing spaces is the standard and the one editors strip. A backslash is CommonMark’s visible form. Leaving <br> in place survives every renderer.

  3. Check the counts

    Headings, paragraphs, links, images, lists, tables and code blocks. A count of zero where you expected several usually means the content was inside something the converter skips.

Common questions

Where did my formatting go?

Markdown has no way to express text colour, alignment or fonts, so those are dropped rather than approximated. If the formatting is the point, keeping the HTML is the better answer.

Is the page fetched from the web?

No. You supply the HTML, by pasting or by dropping a file, and the conversion happens in this tab. Nothing is requested and nothing is uploaded.

Why is there a backslash in my text?

A character in the body would otherwise be read as Markdown syntax — a * or a # at the start of a line. The backslash keeps it as text, and disappears when the Markdown is rendered.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.