HTML to Markdown
Convert HTML into clean Markdown.
How to use HTML to Markdown
What this tool does
This tool converts HTML into Markdown. You paste an HTML snippet or a whole document, choose a couple of formatting options, and get back clean, readable Markdown that you can drop into a README, a wiki, a static-site post, or any editor that understands Markdown. Headings, paragraphs, links, images, lists, blockquotes, inline code, and fenced code blocks are all translated to their Markdown equivalents. The conversion happens entirely inside your browser, so the HTML you paste is never uploaded anywhere.
Why you might need it
HTML is everywhere — it is what email clients, CMS exports, scraped pages, and
rich-text editors produce. Markdown, by contrast, is what most modern
documentation systems, static-site generators, and developer tools actually
want. Converting by hand is tedious and error-prone: you end up hunting for
every <a> tag and rewriting it as a [text](url) link. This tool does that
mechanical work in one step. Common situations include migrating old content
into a Markdown-based docs site, turning a copied web article into a clean note,
or extracting the body of an HTML email into something you can edit comfortably.
How to use it
- Paste your HTML into the input box — a snippet or a full document both work.
- Pick a heading style: ATX uses
#marks, Setext underlines headings. - Pick a bullet marker for unordered lists:
-,*, or+. - Click Convert to Markdown, or press Ctrl/Cmd + Enter.
- Review the Markdown, copy it with one click, or download it as a
.mdfile.
The character counters under each box give you a quick sense of how much the markup shrank — Markdown is almost always far more compact than the HTML it came from.
Common pitfalls
The biggest surprise is that Markdown simply cannot express everything HTML can.
There is no Markdown for a <div> with a class, an inline style attribute, or
a <figure> with a caption. When the converter meets something with no Markdown
equivalent, it leaves the original HTML in place rather than dropping it — that
is intentional and valid, because Markdown renderers pass raw HTML straight
through. If your output looks like it still contains tags, that is usually why.
A second pitfall is malformed HTML: unclosed tags or stray brackets can confuse
any parser. If the result looks wrong, beautify or fix the HTML first. Finally,
remember that whitespace inside <pre> blocks is significant and is preserved
exactly, while whitespace elsewhere is collapsed, just as a browser would do.
Tips and advanced use
When you are migrating a batch of pages, convert one representative page first
and skim the output for any raw HTML left behind — that tells you which
constructs you may want to clean up before a bulk migration. Choose the bullet
marker that matches the rest of your project so diffs stay small; many teams
standardise on -. If you are pasting content copied from a web page, the HTML
often carries tracking attributes and wrapper <span> tags — these convert
cleanly because the converter cares about structure, not styling. And because
every conversion runs locally, this is a safe way to turn internal HTML emails,
private dashboards, or unreleased documentation into Markdown without sending a
single byte to a third party.
Frequently asked questions
Is my HTML sent to a server?
What happens to tags Markdown cannot represent?
What is the difference between ATX and Setext headings?
Does it handle a full HTML document or just a snippet?
Why did my conversion produce empty output?
Related tools
Markdown to HTML
Convert Markdown into HTML.
CSS Minifier
Minify CSS to shrink stylesheet size.
CSS Beautifier
Format and indent minified CSS.
JavaScript Minifier
Minify JavaScript to reduce file size.
JavaScript Beautifier
Format and indent minified JavaScript.
HTML Minifier
Minify HTML markup for faster pages.