Convert HTML to Markdown
Turn web page or email HTML into clean, readable Markdown
Your data stays with you. Conversion happens inside the browser; nothing is sent to a server.
Did this tool do the job?
Thanks, your feedback came through.
How it works
You are moving an old blog post, a wiki page or an email newsletter to something that runs on Markdown: GitHub, Notion, Obsidian or a static site generator. Paste the HTML into the left pane and the Markdown appears on the right. For example <h2>Steps</h2> becomes ## Steps, <strong>5 minutes</strong> becomes **5 minutes**, a nested list keeps its indentation and a table comes out as a GFM table with pipes. If a code block's class names a language (language-bash), it goes on the fence line. Script and style blocks are removed; anything about how the page looks has no Markdown form and is dropped, while the text stays. The result line counts the headings, lists, tables and links it found and how many blocks were removed.
This tool is also known as html to markdown, html to markdown converter, convert html to markdown online, html to md, webpage to markdown.
What is Markdown?
Markdown is a way of writing plain text where punctuation marks the formatting: a hash at the start of a line makes a heading, double asterisks make bold, a hyphen starts a list item. The file reads well even without being rendered, which is why README files, note apps and documentation sites use it. Going from HTML to Markdown means reducing content to this readable form.
What is GFM table?
A GFM (GitHub Flavored Markdown) table separates columns with pipe characters and puts a row of hyphens under the header row. Basic Markdown has no tables; this extension spread through GitHub and most Markdown renderers support it today. It has no merged cells and no multi-line cells, so complex HTML tables do not fit it completely.
What is the difference between HTML and Markdown?
HTML tells the browser everything about a page: structure, appearance and behaviour. Markdown carries only the structure and is meant to be read by people. Converting HTML to Markdown keeps headings, lists, tables, links and emphasis, and loses colors, fonts and layout. That is the point rather than a flaw: text in Markdown reads the same everywhere and is easy to edit.
What Markdown cannot carry
Markdown describes a small part of HTML. Color, font size, alignment and column layout have no place in it; they are dropped and the text inside is kept.
Tables with merged cells (colspan, rowspan) cannot be written as a GFM table. The tool flattens such a table and adds "table with merged cells was flattened" to the result line; check the table in the output.
Characters with a meaning in Markdown (asterisk, underscore, square brackets) get a backslash when they appear in plain text, so a word like file_name does not turn italic.
Which option to pick
Hash headings work almost everywhere and are the only way to write levels three to six. Underlined headings exist for levels one and two only; older README files and some documentation tools prefer them. With this option, level three and below still use hashes.
A reference list keeps paragraphs readable in long texts with many links: the text only shows [page][1] and the URLs are collected at the end. For short texts, inline links are simpler.
Frequently asked questions
Can I paste a whole web page?
Yes. The head section, scripts and styles are dropped and the body content is converted. Menus, footers and sidebars still end up in the output as text, so if you only want the article, copy just that part of the page source.
What happens to images?
Each image becomes a line like ; the image itself is not downloaded, only its address is written. Images embedded in the page (starting with data:) are left out because they are extremely long.
Can I convert Markdown back to HTML?
Yes, use the Markdown to HTML converter for that. The two tools work together: Markdown made here can be turned back into HTML there.
Is my HTML uploaded anywhere?
No. The converter library runs in your browser; the code you paste does not go to any server.