HTML → Markdown

HTML into Markdown.
Sanitised on the way through.

Paste the source or drop a saved page. Out comes GitHub-flavoured Markdown.

Scripts and event handlers are removed first — untrusted HTML never reaches the page.

Drop a file here.

Or pick one with the button. Or just paste with Ctrl+V. Dozens at a time is fine.

.html .htm / 25 MB per file / runs in your browser, nothing uploaded

Other formats: .docx .doc DOCX → MD · .pdf PDF → MD · .xlsx Excel → MD · .csv .tsv .txt CSV → MD · .pptx .ppt .odp PPTX → MD

Or paste it here

Knobs
Bullets
Fence
Images
Tables

How it works

  1. 01Paste HTML source into the box, or drop an .html file above. You can also copy from a rendered web page and press Ctrl+V anywhere on this page.
  2. 02The HTML is sanitised with DOMPurify first: script tags, event attributes, javascript: URLs, iframes and embeds are all removed before conversion, and nothing unsanitised is ever inserted into this page.
  3. 03What's left is converted to GitHub-flavoured Markdown. Copy it or download the .md.

What's supported

  • Pasted HTML source, saved .html and .htm files, and rich text copied straight from a web page
  • Headings, paragraphs, lists, links, images, blockquotes and preformatted code
  • Tables as GitHub-flavoured pipe tables, including strikethrough and task lists
  • Nested lists, and inline formatting inside table cells
  • Whole-document files as well as fragments — a body isn't required

What it won't do

  • Scripts, event handlers, iframes, objects and embeds are removed, not converted
  • CSS is not applied — an element styled to look like a heading is still a paragraph in the HTML, and stays one
  • It doesn't fetch anything: relative image and link URLs stay relative, and no page is downloaded for you
  • Layout done with divs and CSS grid flattens into plain blocks
  • Forms, buttons and interactive widgets have no Markdown equivalent

What survives

These carry over as-is. Anything else gets a best effort, and you'll be told when it doesn't line up.

Old .doc files skip the images — that format hides them where a browser can't reach.

Questions people ask

That's exactly what it's built for. Every input goes through DOMPurify before conversion — script tags, onclick-style attributes, javascript: URLs, iframes and embeds are gone. Nothing unsanitised is ever put into this page's DOM, so pasted HTML can't run.