Overview
Converts HTML into clean GitHub-flavored Markdown: headings, paragraphs, links, images, bold, italics, inline and fenced code, ordered and unordered lists, blockquotes, horizontal rules, and tables. Text characters that Markdown would misread - asterisks, underscores, brackets, backticks - are backslash-escaped so what arrives is what a Markdown renderer will show.
How It Works
Paste HTML into the left panel; the Markdown appears on the right as you type, ready to copy. Scripts and styles are dropped rather than converted. A syntax error cannot blank the output - the browser's parser is forgiving, so even broken HTML produces the closest sensible Markdown.
Step-by-Step Usage Guide
- Paste the HTML you want converted - a full document or a fragment both work.
- Copy the Markdown from the right panel.
- Check code blocks and tables in your target renderer; those two constructs vary most between Markdown flavours.
- Keep the HTML as the source of truth if you will convert again; converting Markdown back to HTML and re-converting is lossy.
Technical Specifications & Standards
The converter is a recursive walk over the parsed DOM with a deliberate inline/block split. Block elements (headings, paragraphs, lists, tables, pre) are separated by blank lines because Markdown structure lives in blank lines; inline elements wrap their content in markers - ** for strong, * for em, backticks for code, [text](href) for links,  for images. Two details separate a usable converter from a naive one: text escaping and code context. Plain text gets Markdown-significant characters escaped, so a price like 3 * 4 does not become an accidental emphasis - but text inside code and pre elements is emitted verbatim, because escaping there would corrupt the very content code blocks exist to protect. Links get parentheses percent-escaped so hrefs like page(1).html do not terminate the link target early. Tables come out as GFM pipe tables, and fenced code blocks keep their language tag when the source used the common language- convention, so syntax highlighting survives the trip.
Targeted Use Cases
- Migrating CMS or helpdesk articles into a Markdown-based docs site or wiki.
- Turning email or exported HTML content into README sections.
- Moving Notion, Confluence, or Google Docs exports (which arrive as HTML) into a Git-backed content workflow.
- Cleaning AI-generated or scraped HTML into readable Markdown notes.
Notes & Gotchas
- Prefer clean semantic HTML as input - div-soup converts, but semantic tags convert better.
- Review tables after conversion; complex merged cells have no exact Markdown equivalent.
- If your target is CommonMark rather than GFM, check the pipe tables - that is the main flavour difference this output has.
- Escape-check user-generated content: the converter escapes Markdown metacharacters, but a final visual check catches surprises.
Frequently Asked Questions
Which Markdown flavour is the output?
GitHub-flavored Markdown, the de facto standard: pipe tables, fenced code blocks with language tags, and standard emphasis. It renders correctly on GitHub, GitLab, most static site generators, and common editors.
Why are some characters backslashed in my text?
Characters like *, _, and [ have meaning in Markdown. Escaping them preserves the literal character; without the backslashes your converted text would silently re-format itself.
What happens to scripts and styles?
They are removed. Their content is not prose and pasting it as Markdown text would be noise at best and an XSS vector at worst if the Markdown is later rendered as HTML.
Is nested content supported?
Yes - lists inside lists, blockquotes containing lists, and links containing emphasis all convert. Deeply exotic structures may simplify; check the output for anything unusual.