Converters Markdown ⇄ HTML Converter

Markdown ⇄ HTML Converter

Convert Markdown to clean HTML, or HTML back into readable Markdown (files up to 200MB supported).

Or convert a file directly — supports files up to 200MB

Drag & drop a file here, or click to browse

Processed in the background, so the page stays responsive even for huge files

How to use this tool

Choose Markdown → HTML or HTML → Markdown, then type, paste or upload a file. The output pane follows every keystroke, and Download saves it under your upload's name with an .html or .md extension. A Markdown file over 5 MB skips the editor and is converted in the background (up to 200 MB) so the page doesn't freeze; HTML files are always loaded into the editor.

Things GitHub shows that this output won't

A README that looks right on GitHub can come out differently here, because GitHub adds its own features on top of GitHub-flavoured Markdown. Tested with this converter:

  • Heading anchors. ## Install steps becomes a plain <h2> with no id, so a link to #install-steps goes nowhere. Where you need one, write the heading as raw HTML, <h2 id="install-steps">, which passes through.
  • Footnotes. Claim[^1] with a [^1]: Source. line turns into a link labelled ^1 whose address is "Source.", because the definition is read as a link reference. Use a numbered notes list instead.
  • Alerts. > [!NOTE] is an ordinary blockquote that shows the text [!NOTE].
  • Shortcuts. :tada:, @asha and #42 stay as typed; GitHub alone turns them into an emoji, a profile link and an issue link.
  • Front matter. The --- block at the top of a Jekyll or Hugo post comes out as an <hr> followed by an <h2> holding the fields (title: …), because a line of dashes under text is heading syntax. Delete the block before converting.

Frequently Asked Questions

Is the HTML output safe to put straight onto a web page?

Only if you trust the Markdown. Markdown allows raw HTML, and the converter passes it through untouched, so a <script> tag or an onclick attribute in the source appears in the output. That is what you want for your own documents. For Markdown written by other people, such as comments or profiles, run the HTML through a sanitizer like DOMPurify before displaying it.

Does the HTML include a <head>, styles or a full page?

No. You get only the body content: headings, paragraphs, lists and so on, with no <html>, <head> or CSS, and the downloaded .html file is the same fragment. That is what a CMS or template expects. To open it as a page of its own, wrap it in a basic HTML document with <meta charset="utf-8"> in the head, so the browser doesn't have to guess how to read characters like ₹ or é.

Why does my Markdown look different after converting to HTML and back?

The return trip writes Markdown in one fixed style. *italic* comes back as _italic_, a "- item" bullet comes back as "* item", and numbered items get two spaces after the number. Both spellings render identically, so nothing is lost; only the source text changes. If a diff tool or a code review cares about the exact characters, keep your original file.

Related Tools

Related Blog Posts