Convert HTML markup into clean Markdown — headings, links, lists, emphasis, blockquotes, and code — entirely in your browser.
HTML → MD
Instant
100% Client-Side
No Sign Up
HTML Input
Markdown Output
11 elements
# Getting Started
Welcome to **Tools.Town**. Visit [our site](https://tools.town) for more.
## Features
- Fast and *free*
- No sign-up required
> Built for everyone.
Embed This Tool
Easy to Embed
Add HTML to Markdown to your website or blog in seconds.
Share HTML to Markdown with anyone — no login required.
Shareable link
No login required
Works on any device
No account needed
Share via
Advertisement
How to Use
1 Paste HTML into the input panel
2 Choose your preferred bullet style for unordered lists
3 Read the converted Markdown in the output panel
4 Copy the Markdown with one click
5 Paste it into your docs, README, or notes
Features
Converts headings, paragraphs, and emphasis
Turns links and images into Markdown syntax
Handles ordered, unordered, and nested lists
Converts blockquotes and fenced code blocks
Decodes HTML entities into real characters
Runs entirely in your browser — nothing is uploaded
Why it Matters
Markdown is the lingua franca of documentation, README files, wikis, and note apps, but the content you want often starts life as HTML — a web page, a CMS export, an email. Converting it preserves the structure (headings, links, lists) in a clean, portable text format that is easy to edit and version-control, instead of forcing you to rebuild it by hand.
★★★★★
Use Cases
Docs & READMEs
Move web content into Markdown documentation
CMS Migration
Convert exported HTML into Markdown for a static site
Notes & Wikis
Paste web snippets into Markdown note apps cleanly
Version Control
Keep content as diff-friendly Markdown text
What this tool does
HTML to Markdown converts HTML markup into clean, portable Markdown. It preserves the document’s structure — headings, paragraphs, emphasis, links, images, lists, blockquotes, and code blocks — while dropping presentational tags, scripts, styles, and comments.
How it works
A small HTML parser builds a node tree from your markup, then serialises it to GitHub-Flavoured Markdown: headings become # lines, links become [text](url), lists become bullet or numbered lines with proper nesting, and entities are decoded back into real characters. The logic is a pure function — the same input always produces the same Markdown.
Privacy
Everything runs locally in your browser. No values are uploaded, logged, or stored.
Frequently Asked Questions
Which HTML elements does it convert?
The common structural and inline elements: headings h1 through h6, paragraphs, line breaks, horizontal rules, bold and italic, inline code, links, images, ordered and unordered lists including nested ones, blockquotes, and preformatted code blocks. Unknown or purely presentational tags are unwrapped — their text is kept and the tags dropped — so you always get clean output.
What happens to scripts, styles, and comments?
They are removed entirely. The contents of script and style elements are code rather than content, and comments are invisible, so none of them belong in the Markdown. The converter strips all three before building the output.
Can it handle nested lists?
Yes. A list inside a list item is indented under its parent using two spaces per level, which is the standard Markdown convention for nesting. Ordered and unordered lists can be mixed and nested to any depth.
How is this different from the HTML Stripper?
The HTML Stripper throws away all formatting and gives you plain text. This tool preserves the structure — headings stay headings, links stay links, lists stay lists — in Markdown syntax. Use the stripper when you want only the words, and this converter when you want to keep the formatting in a portable form.
Is my HTML sent to a server?
No. Conversion runs entirely in your browser with JavaScript. Nothing you paste is uploaded, logged, or stored, and refreshing the page clears everything.