Skip to content

Developer tool · local conversion

Convert HTML to clean Markdown

Paste HTML to preserve useful structure, remove active content, and create editable Markdown locally.

Paste HTML

Source stays in this browser tab and is not uploaded.

0 / 200,000 characters

Tip: press Ctrl or Command + Enter to convert.

Markdown result

Safe structure preview

Rebuilt from supported semantic content. Links are shown as text and images are never requested.

The preview appears after a successful conversion.

How to convert HTML to Markdown

This converter is for developers, writers and content editors moving structured text from a CMS, email template, exported page or documentation system into a README, wiki or static-site file. It favors portable meaning over a pixel-perfect copy of the original page.

Convert and review a document

  1. Paste HTML source into the input. A fragment such as an article section works as well as a complete document.
  2. Choose Convert to Markdown or press Ctrl/Command + Enter. The output does not update silently while you are reviewing it.
  3. Read the Markdown and the safety or fidelity notices. You can edit the output before copying it.
  4. Use the structure preview to check headings, paragraphs, lists, code and tables without executing the source HTML.
  5. Copy the final text or download html-to-markdown.md, then render it in the destination that will actually publish it.

What the conversion preserves

Semantic headings become ATX headings with # markers. Paragraphs, strong and emphasized text, blockquotes, horizontal rules, inline code and fenced code blocks receive their normal Markdown forms. Ordered and unordered lists keep their order and basic nesting. Safe links and image references keep their visible text or alt text and destination. Standard rectangular HTML tables become GitHub Flavored Markdown pipe tables, while del, s and strike become GFM strikethrough.

The converter parses the source as an inert HTML document. It never mounts that source in the page. The preview is rebuilt as React text and elements from the extracted structure; it does not use raw HTML injection, follow links or request images. Script, style, iframe, object, embed, template, canvas, SVG, link and meta elements are dropped before conversion. Event-handler attributes such as onclick are never executed.

Examples you can verify

Example 1: <h2>Notes</h2><p>A <strong>bold</strong> word and a <a href="/guide">guide</a>.</p> becomes ## Notes followed by A **bold** word and a [guide](/guide). The structure panel reports one heading and one link, and the safe preview shows both without navigating anywhere.

Example 2: a two-column table with Name and Status headers becomes a pipe table with a --- separator row. A pre element containing code becomes a fenced code block; a class such as language-js supplies the optional js language hint. If the table contains colspan="2", the output still exposes the available cell text but a merged-table warning tells you to compare every row manually.

Losses, malformed input and common fixes

Markdown does not carry CSS layout, fonts, colors, arbitrary spacing, event behavior or most accessibility relationships. Generic wrappers such as div and span are unwrapped so their text remains. Browsers repair many malformed fragments while parsing, so a missing closing tag may still convert, but the repaired hierarchy may differ from what the author intended. Fix the HTML first when heading levels, list boundaries or table rows look wrong.

Merged cells, nested tables and highly visual email layouts have no exact GFM equivalent. The converter warns instead of claiming fidelity. Relative and HTTPS references are kept as text in the Markdown output, but the preview never loads them. javascript:, vbscript: and data: destinations are removed. The 200,000-character limit protects the tab from unexpectedly large pastes; split a larger export at stable article boundaries.

Using the Markdown output

The result is editable plain text. Copy it for a README, issue, wiki or note, or download the .md file for a repository or static-site generator. A successful download only proves that the browser created a text file; it does not prove that GitHub, a documentation engine or another Markdown dialect will render every extension identically. GFM tables, task lists and strikethrough are widely supported but are not part of every minimal Markdown parser.

For migration work, keep the original HTML until the destination has been checked. Compare heading order, link destinations, list nesting, code whitespace and every table row. Also inspect images and relative URLs in the destination context. This tool does not fetch web pages, inline remote assets, rewrite link bases, preserve CSS, convert Word files or guarantee a reversible HTML round trip.

Frequently asked questions

Does pasted HTML run in the page?

No. It is parsed as an inert document and converted to text. Active and embedded elements are removed, and the preview is reconstructed without raw HTML injection or external resource requests.

Why does a merged table look different?

GFM pipe tables have no colspan, rowspan or nested-table model. The converter flattens the available cells and displays a warning so you can rebuild the table manually if its visual relationships matter.

Are links and images safe to review?

The Markdown may preserve safe relative or web references for later use, but the local preview shows them without following links or loading images. Unsafe URL schemes are reduced to plain text.

Is this a reversible HTML formatter?

No. The goal is readable Markdown. CSS, layout, behavior and unsupported HTML structures are intentionally lost, so converting the result back to HTML will not reproduce the original page.

Is my HTML uploaded or saved?

No. Conversion, preview, copy and file creation happen in this browser. This page does not provide an account, URL fetcher, history or cloud storage.