Free Tools Grid

HTML to Markdown Converter

Developer Tools

A free online HTML to Markdown Converter that turns rich HTML — CMS exports, Notion pages, scraped webpages — into clean GFM Markdown, all in your browser with no upload.

Runs entirely in your browser
Loading tool...

About HTML to Markdown Converter

An HTML to Markdown Converter is the fastest way to take rich HTML — a CMS export, an email template, a Notion page, a scraped webpage, a Confluence dump — and turn it into clean, Git-committable Markdown. This free online HTML to Markdown Converter is built on Turndown (the same library used by GitHub's own migration tooling) and ships with the GitHub Flavored Markdown (GFM) plugin enabled, so tables, task lists, strikethrough, and fenced code blocks all round-trip correctly. Conversion runs as you type or paste, with no submit button and no upload — paste the raw HTML on the left, copy the Markdown on the right, and move on.

Beyond the basics, this HTML to Markdown Converter knows what to keep and what to throw away. Structural elements — headings, lists, links, images, blockquotes, code blocks — translate to their Markdown equivalents using ATX-style headings (`#`, `##`) and fenced code blocks (```), which is the modern CommonMark + GFM convention used by GitHub, MkDocs, Docusaurus, and most static site generators. Presentation-only HTML (inline `style` attributes, layout `<div>`s, utility class names, font tags) is stripped silently because Markdown has no concept of visual styling — trying to preserve it would only pollute your output. Links keep their `href`, images keep `src` and `alt`, and code blocks keep their language hints when present, so syntax highlighting downstream still works.

Because every conversion runs locally, internal CMS exports, customer-support transcripts, draft blog posts, and proprietary documentation never leave your machine — unlike many free HTML to Markdown Converter sites that POST your text to a remote endpoint before responding. There is no signup, no rate limit, no ads injected into the output, and no analytics tracking your content. To convert html to markdown with this tool, you just paste and copy; the same workflow handles short fragments and long html to md exports, and pairs cleanly with the Markdown to HTML Converter for round-trips or the Markdown Editor for richer authoring. Whether you're migrating a WordPress dump, cleaning up a webpage paste, or doing html to markdown online for a static site generator like Hugo or Next.js, this is the converter that gets out of the way.

How to use

  1. 1

    Paste or upload your HTML

    Drop your HTML — a full page, a fragment, or a CMS export — into the editor in this HTML to Markdown Converter. Conversion runs as you type, no submit button needed.

  2. 2

    Read the Markdown output live

    The right panel shows the converted Markdown the moment you paste. Headings become `#`, links become `[text](url)`, tables become GFM pipe tables, and inline styling is silently dropped.

  3. 3

    Spot-check what got cleaned up

    Layout `<div>`s, inline styles, classes, and `<head>` tags are stripped because they don't translate to Markdown. If something useful went missing, check whether it had structural meaning — Turndown only keeps semantic markup.

  4. 4

    Copy or download the Markdown

    One-click copy the Markdown to clipboard, or click Download to save a .md file you can drop straight into a Hugo, Next.js, Docusaurus, or MkDocs project.

  5. 5

    Round-trip or chain to another tool

    Need to go back the other way? Pair with our Markdown to HTML Converter. For richer authoring with side-by-side preview, jump to the Markdown Editor.

Examples

Article-style HTML

Headings, paragraphs, links, and lists translate cleanly.

Input

<h1>Hello</h1>
<p>A <strong>bold</strong> intro with <a href="https://example.com">a link</a>.</p>
<ul>
  <li>one</li>
  <li>two</li>
</ul>

Output

# Hello

A **bold** intro with [a link](https://example.com).

- one
- two

Tables (GFM)

Tables become GitHub-flavored Markdown tables.

Input

<table>
  <thead><tr><th>Tool</th><th>Done</th></tr></thead>
  <tbody><tr><td>Formatter</td><td>Yes</td></tr></tbody>
</table>

Output

| Tool | Done |
| --- | --- |
| Formatter | Yes |

Frequently asked questions

What is an HTML to Markdown Converter and when should I use one?+

An HTML to Markdown Converter takes HTML markup — from a CMS export, an email template, a scraped webpage, a Notion or Confluence page, an old WordPress dump — and turns it into plain Markdown. You'd use one when you're migrating content into a Markdown-first system like a static site generator (Hugo, Next.js, Docusaurus, Astro), when you need to commit content to a Git-backed docs repo, when you're feeding text into an AI model that prefers Markdown, or when you simply want a cleaner, more portable copy of a long article you can re-edit later.

Is this HTML to Markdown Converter completely free, with no signup or quotas?+

Yes. There is no account, no email gate, no daily quota, and no upgrade upsell. The converter loads once and then runs entirely in your browser using Turndown — so the only resource cost is your laptop's CPU. You can convert the same document a thousand times, paste a multi-megabyte HTML export, or open ten tabs side-by-side to compare drafts. Nothing on our end notices or rate-limits you, and there are no ads injected into the page or output.

What HTML features don't convert cleanly to Markdown?+

Anything without a Markdown equivalent. Inline styles, classes, layout `<div>`s used purely for spacing, `<span>`s without semantic meaning, font tags, `<iframe>`s, and complex multi-column layouts get dropped or flattened. Markdown is a content format, not a presentation format, so anything purely visual is lost by design. If you need to preserve styling, you're looking at a different problem — keep the HTML, or convert to Markdown and add a separate stylesheet.

Does it support GitHub Flavored Markdown (GFM) — tables, task lists, fenced code?+

Yes. GFM is enabled by default through Turndown's GFM plugin, so `<table>` markup becomes pipe-style tables, `<del>` / `<s>` becomes `~~strikethrough~~`, checkbox lists become `- [ ]` / `- [x]`, and `<pre><code class="language-js">` becomes a fenced ```js block. Autolinks are also recognised. If the source HTML uses semantic markup, the round-trip back through a Markdown → HTML converter will produce equivalent output.

How does this compare to Turndown, htmlmarkdown.com, and CodeBeautify?+

Turndown is the underlying library this tool uses — every JavaScript-based online converter is essentially a wrapper around it. The differences between hosted tools are in UI quality, ad load, privacy, and feature exposure. htmlmarkdown.com is the classic single-purpose page. CodeBeautify bundles dozens of tools but loads heavier and surfaces ads. This HTML to Markdown Converter is intentionally narrow: free online conversion, full GFM, no ads, no analytics on your content, fully client-side — fast, private, focused.

Can it handle a full HTML page, or only fragments?+

Both. Paste a fragment (a `<table>`, a `<section>`, a snippet copied from a webpage) and only that fragment gets converted. Paste a full page including `<!DOCTYPE>`, `<head>`, `<style>`, and `<script>` tags and the converter focuses on the body content — `<head>` content is ignored, scripts and styles are dropped, and you get the article-style Markdown you'd actually want to commit to a repo. No need to clean up the source first.

Does it preserve image attributes like width, height, or alt text?+

It preserves `src` and `alt` — those map directly to Markdown's `![alt](src)` image syntax. Other attributes (`width`, `height`, `class`, `style`, `loading`, `srcset`) are not part of standard Markdown and get dropped, since the spec has no way to represent them. If you need sized images, switch to HTML inside Markdown (most renderers allow it) or add the sizing later in your CSS or a custom shortcode.

Is my HTML sent to a server, or does conversion happen in my browser?+

All conversion happens in your browser. There is no network call — Turndown parses the HTML and emits Markdown entirely on your device, using JavaScript that was loaded once when you opened the page. Internal CMS exports, customer-support transcripts, draft blog posts, and proprietary documentation never leave your machine. This is the main reason content and engineering teams prefer client-side converters over hosted ones that POST your text upstream.

Why are my inline styles and class names being dropped from the Markdown?+

Markdown has no syntax for inline styles, classes, IDs, or arbitrary attributes — it's a content format, not a presentation format. Turndown follows the spec strictly: it preserves anything with structural meaning (headings, lists, links, code) and drops anything purely cosmetic. If you need visual fidelity, keep the HTML; if you need portable, repo-friendly text, the trade-off is exactly the one Markdown was designed to make.

How big an HTML document can I convert before the page lags?+

Tens of thousands of nodes convert in well under a second on a modern laptop. A typical WordPress export, a long CMS dump, or a scraped article (even one with hundreds of images and links) is no problem. Above roughly a megabyte of raw HTML you may notice a brief delay as Turndown walks the DOM; if that matters, paste once and stop typing rather than editing in-place. For multi-megabyte exports, do the conversion in chunks instead of a single paste.

Can I round-trip Markdown → HTML → Markdown without losing structure?+

For structural content (headings, lists, links, code blocks, tables) the round-trip is lossless. For content that relies on inline HTML extensions — custom attributes, raw `<div>` wrappers, embed widgets — the round-trip is lossy by Markdown's design. The cleanest pattern is: keep the source of truth in Markdown (commit to Git), convert to HTML at render time for display, and only use this converter for ingesting legacy HTML into the Markdown system.

Does the HTML to Markdown Converter work offline once the page is loaded?+

Yes. After the initial page load, the converter runs without any further network requests — Turndown ships as JavaScript that lives in the page bundle, so there's no remote dependency. It continues to work on a plane, in a coffee-shop dead zone, or inside an air-gapped network. If you find yourself converting HTML often without reliable connectivity, you can install the site as a PWA from your browser's address bar for a one-click launch.