Developer tools · free · no signup

HTML to Markdown Converter

Convert HTML markup and web snippets into clean GitHub Flavored Markdown locally. Your work stays on this device whenever possible.

Free to useNo accountClear results
Preparing tool…
Simple, transparent workflow

How to use HTML to Markdown Converter

  1. Paste HTML into "HTML Input" (a release-notes sample with heading, list and table is preloaded), or press "Load Sample".
  2. Choose a "Heading Style": ATX (# Heading) or Setext (=== / ---); Setext applies only to h1 and h2, while h3 to h6 stay ATX.
  3. Choose a "Bullet Style" of Dash (-) or Asterisk (*); numbered lists always use 1., 2. and so on.
  4. Press "Convert to Markdown"; changing either selector re-runs the conversion automatically.
  5. Compare "Markdown Output" with the "Live Rendered Markdown Preview", then use "Copy Markdown" or "Download .md".

Worked example

Paste <h2>Setup</h2><p>Run <code>npm i</code> first.</p><ul><li>Fast</li><li>Small</li></ul> with ATX headings and the Asterisk bullet. The output is three blocks separated by blank lines: "## Setup", then Run `npm i` first., then two lines, "* Fast" and "* Small". Switching to Setext turns the heading into Setup underlined with a row of dashes.

When to use this tool

  • Moving a blog post from a CMS export into a static-site Markdown file.
  • Turning an HTML email snippet into notes for a wiki.
  • Converting a copied documentation table into a pipe table.

Important limitations

Converts semantic HTML tags into standard Markdown syntax. Non-semantic layout wrappers (like complex multi-column nested <div> tags or embedded iframes) cannot be expressed in pure Markdown and may be omitted or kept as raw HTML.

Comparing alternatives

Other options for html to markdown converter include Turndown, CodeBeautify, Browserling.

ToolkitPoint is not affiliated with those services.

Frequently asked questions

Which elements are converted?

Headings h1 to h6, paragraphs, bold, italic, strikethrough, inline code, pre blocks (with a language class becoming the fence label), blockquotes, links with titles, images, rules, line breaks, lists and tables. Other elements such as div and span are unwrapped, keeping their text.

Are nested lists supported?

Not properly. Each list item is flattened into a single line, so a sublist inside an item merges into that line with stray breaks. Flatten nested lists first or fix the output by hand.

How are tables converted?

The first row always becomes the header row, whether or not it sits in a thead, cells have pipes escaped, and a separator of dashes is added. Row and column spans and alignment attributes are not represented.

What does the Live Rendered Markdown Preview show?

Despite the name, it displays your input HTML as the browser draws it, not the Markdown result. It also inserts that HTML into the page without cleaning it, so paste only markup you trust.

How is whitespace treated?

Runs of whitespace collapse to a single space, as browsers do, and three or more blank lines shrink to one. Text inside pre blocks is kept as written, and br elements become line breaks.