Convert HTML to Markdown online
Convert HTML into clean Markdown with control over heading style, bullet markers, code fences, link style and GitHub-flavoured tables.
- Runs in your browser
- Files are never uploaded
- Free, no account
Off leaves <table> markup untouched.
Ignores <head> when you paste a whole page.
HTML input
Markdown output
How to convert HTML to Markdown
- Paste the HTML — a fragment or a whole page — or drop an
.htmlfile. - Leave “Body only” on so the
<head>and its scripts and styles are ignored. - Tune the style options to match your project’s Markdown conventions.
- Copy or download the
.md. The conversion re-runs the moment you change an option.
Style options and what they produce
| Option | Choices | Output |
|---|---|---|
| Heading style | ATX / setext | ## Title or Title with --- underneath |
| Bullet marker | - / * / + | The character used for every unordered item |
| Code blocks | Fenced / indented | Triple backticks or four-space indentation |
| Fence characters | ``` / ~~~ | Tildes help when the code itself contains backticks |
| Emphasis | _ / * and ** / __ | Some linters mandate one; underscores are the common default |
| Link style | Inline / reference | [text](url) or [text][1] with URLs collected at the end |
| Horizontal rule | --- / *** / ___ | All render identically; pick what your linter wants |
Tables, task lists and strikethrough
Plain Markdown has none of these; GitHub-flavoured Markdown has all three, and each is a separate
toggle here. A <table> becomes a pipe table with the first row as the header and
align attributes translated into the divider row. A list item whose first child is a
checkbox becomes - [x] or - [ ]. <del> and
<s> become ~~text~~. Turn any of them off when the destination only
understands CommonMark.
Why some HTML stays as HTML
Markdown is a small language. It has no syntax for a <details> disclosure, a
definition list, a superscript or a cell that spans two columns. Rather than throwing that content away,
the converter passes those elements through as inline HTML — which is legal inside a Markdown document
and renders correctly nearly everywhere. If you need strictly plain Markdown, remove those elements from
the source first.
Pasting a whole web page
With “Body only” enabled the input is parsed as a document and only the body content is converted, so the title, meta tags, inline styles and analytics snippets are ignored. Two caveats worth knowing:
- View-source is not what you see. Content injected by JavaScript is not in the HTML you copied, so it will not appear in the Markdown. Copy from the browser’s element inspector instead.
- Navigation comes along too. Menus, cookie banners and footers are body content. Paste just the
<article>or<main>element for a clean result.
Common uses
- Migrating a CMS or blog export into Markdown files for a static site.
- Turning a rich-text email or a Google Doc export into repository documentation.
- Cleaning pasted rich text down to plain structural markup before committing it.
- Round-tripping: edit in Markdown, publish as HTML with Markdown to HTML.
Runs entirely in your browser
Turndown and the browser’s own HTML parser do the work in this tab. Nothing is uploaded, so draft posts, intranet pages and client documents stay on your machine — and the tool keeps working offline.
Questions
Can I paste a whole web page?
Yes. With “Body only” on, everything in <head> — titles, meta tags, scripts and styles — is ignored and only the visible body content is converted.
Are HTML tables converted?
Yes, into GitHub-flavoured Markdown tables. The first row becomes the header, align attributes become alignment colons, and cells containing line breaks use <br>.
Why is some markup left as raw HTML?
Markdown cannot express every construct. Elements with no Markdown equivalent are passed through as HTML so the meaning survives, which is valid inside Markdown documents.
What is the difference between inline and reference links?
Inline puts the URL next to the text as [text](url). Reference style writes [text][1] and collects the URLs at the bottom, which keeps long prose much easier to read.