HTML to Markdown Converter

Paste HTML source, or copy formatted text from a page and paste it into the second box, and get Markdown at once. Headings, nested lists, task lists, tables with alignment, code blocks with their language and links all convert, and scripts and styles are dropped.

Runs in your browser Developer tools

Or paste formatted content here

Copy text from a web page or a document, click this box and paste: its formatting becomes HTML above and is converted at once.

The HTML is parsed in this tab as an inert document: scripts do not run and nothing is fetched, uploaded or stored.

How to use

  1. Paste HTML into the HTML box, press Open .html file, or drop a file onto it. To convert something you can see on a page, copy it, click the paste box under the HTML box and paste.
  2. Pick the Markdown style: hashes or underlined headings, the bullet character, the emphasis character and how code blocks are written.
  3. Enter a Base URL if the page uses relative links and images, so they become full web addresses in the result.
  4. Check the status line for counts and warnings, then Copy Markdown or Download .md.

Frequently asked questions

Is the HTML sent anywhere, and is it safe to paste?

No upload happens. The HTML is parsed in your tab as an inert document: scripts do not run, images and other resources are not fetched, and script and style elements are dropped. You can paste untrusted markup without it doing anything.

What cannot be converted exactly?

Markdown has no syntax for colours, fonts, merged table cells or arbitrary layout. Tables that use colspan or rowspan are kept as HTML, tags such as sup, sub and mark can be kept as HTML or dropped, and everything else keeps its text but loses its styling. The result is meant for content, not for reproducing a page’s design.

Why are some characters escaped with backslashes?

Characters such as * _ [ ] and a # or - at the start of a line would be read as Markdown formatting if left alone. The converter adds a backslash only where the text would otherwise change meaning, so the Markdown renders to the same text you started with.

Related tools