Advertisement
Guide
About the HTML to Markdown
Migrating a blog, pulling content out of a CMS, or turning a rendered page back into something editable — all of them end with the same job: HTML in, Markdown out.
This converter uses the browser's own HTML parser rather than regular expressions, so unclosed tags and messy real-world markup are handled the way a browser would handle them.
Why a real parser matters
Converting HTML with regular expressions works until it meets an unclosed <p>, an attribute containing a >, or a nested list — and real HTML is full of these. Handing the markup to the browser's parser first means the structure is already correct before conversion starts, which is why nested lists and tables survive intact here.
What Markdown cannot express
Markdown has no syntax for <sup>, <kbd>, cell alignment, column spans, or arbitrary attributes. Rather than dropping those, this converter leaves them as inline HTML — which is valid Markdown and renders correctly almost everywhere. If you need strictly portable Markdown, strip those tags before converting.
Why the output has backslashes in it
Characters that mean something in Markdown are escaped on the way out, so a literal asterisk in your text becomes \* rather than silently turning into emphasis. It looks noisy in the source but is what makes the result render as your original text instead of as accidental formatting.
Inline versus reference links
Inline links put the URL next to the text, which is easier to follow while editing. Reference links collect URLs at the bottom and keep the prose readable, which suits documents with many long links. Both render identically — it is purely a question of how you want to edit the source.
How to use it
- 1Paste your HTML, or load the sample to see what it handles.
- 2Adjust the bullet, heading, emphasis and link style if you want.
- 3The Markdown updates as you type.
- 4Copy the result.
Frequently asked questions
Does it handle tables?
Yes. HTML tables become Markdown pipe tables. A table without a header row gets an empty one, since Markdown requires it. Column spans cannot be represented and are flattened.
What happens to tags Markdown does not support?
They are kept as inline HTML, which is valid Markdown and renders correctly in most processors — better than dropping the content silently.
Are nested lists supported?
Yes, at any depth, with correct indentation for both bullet and numbered lists.
Why are there backslashes in the output?
They escape characters that would otherwise be read as Markdown syntax, so a literal asterisk or underscore stays literal instead of becoming emphasis.
Is my HTML uploaded?
No. Conversion uses your browser’s own parser and nothing is sent to a server.
