HTML to Markdown Converter — Free Online Tool
The free HTML to Markdown Converter turns HTML source into clean, ready-to-use Markdown instantly — with a live side-by-side view, one-click copy, and zero external dependencies. Everything runs in your browser; nothing is sent to a server.
Why Convert HTML to Markdown?
HTML is what browsers render. Markdown is what developers, technical writers, and content teams author. Converting HTML to Markdown becomes necessary when:
- Migrating blog posts from WordPress or a legacy CMS into a Markdown-native system (Ghost, Jekyll, Hugo, Docusaurus)
- Importing web articles or documentation into a knowledge base that accepts Markdown (Notion, Obsidian, Confluence)
- Cleaning up rich-text content exported from Google Docs or Notion so it can be version-controlled as plain text
- Extracting readable content from HTML emails or web pages for offline editing
The reverse workflow — going from Markdown to HTML — is handled by the companion Markdown to HTML Converter, which is useful when you need to embed Markdown content into an HTML-based system.
How to Use the Converter
- Open the HTML to Markdown Converter. A sample document is pre-loaded so the conversion is visible immediately.
- Replace the sample with your own HTML in the left panel. The Markdown output updates live in the right panel as you type.
- Review the output. Line and character counts appear below each panel so you can track the size change between the HTML source and the Markdown output.
- Click Copy Markdown to copy the full output to your clipboard. Paste it directly into your editor, static site generator, or documentation system.
Supported HTML Elements
| HTML Input | Markdown Output |
|---|---|
<h1>Heading</h1> | # Heading |
<h2>Heading</h2> | ## Heading |
<strong>bold</strong> | **bold** |
<em>italic</em> | *italic* |
<del>text</del> | ~~text~~ |
<code>snippet</code> | `snippet` |
<pre><code class="language-js">...</code></pre> | ```js ... ``` |
<ul><li>item</li></ul> | - item |
<ol><li>item</li></ol> | 1. item |
<blockquote>...</blockquote> | > ... |
<a href="url">text</a> | [text](url) |
<img src="url" alt="alt"> |  |
<hr> | --- |
<p>...</p> | Paragraph with blank-line separation |
Advanced Workflows
WordPress to Ghost migration
Ghost natively supports Markdown. When migrating from WordPress, export your posts as HTML (using the WordPress exporter or a plugin), paste each post's content HTML into the converter, and save the output as .md files. Import them into Ghost using the Ghost CLI or the admin panel's import feature.
Google Docs to static site generator
Google Docs exports to HTML via File > Download > Web Page (.html). Open the downloaded HTML file, copy the body content, paste it into the converter, and save the Markdown for your Jekyll, Hugo, or Eleventy post. HTML comments, script tags, and style attributes are automatically stripped.
Cleaning up email HTML
HTML emails contain heavy inline styles, table-based layouts, and tracking pixels. Paste the email body HTML into the converter to extract the readable text content as clean Markdown — useful for saving email newsletters into a notes app or documentation system.
Round-trip verification
After converting HTML to Markdown, paste the output into the Markdown to HTML Converter to convert it back to HTML. Comparing the original HTML against the round-tripped output reveals any elements that have no direct Markdown equivalent — like table cells, coloured text, or nested lists.
Diffing HTML changes
When updating a document, convert both the old and new HTML to Markdown, then paste both Markdown strings into the Diff Checker. Markdown diffs are far more readable than raw HTML diffs because the markup noise is gone — only the content changes are visible.
Common Questions
Does the converter need an internet connection to work?
Only to load the page initially. Once loaded, the conversion runs entirely in your browser using a JavaScript parser built into the tool. No network requests are made during conversion — it works offline after first load.
What happens to HTML tags that have no Markdown equivalent?
Tags like <span>, <div>, <table>, and inline style attributes are stripped and their text content is preserved. The text flows into the nearest surrounding block element. If you need to preserve table structure, convert to Markdown and then manually add a Markdown table using pipe syntax.
Is there a file size or character limit?
No enforced limit. The parser processes text synchronously in the browser. Very large HTML documents (hundreds of thousands of characters) may cause a brief UI lag on older devices. In practice, typical blog post or documentation page HTML converts instantly.
Convert Your HTML Now
Paste HTML on the left, copy Markdown on the right. Instant, free, no signup.
Open HTML to Markdown Converter