Markdown to HTML

Paste Markdown on the left, see the rendered HTML (or its source) on the right. Runs live in your browser.

How to use

  1. Type or paste Markdown on the left.
  2. The preview on the right updates as you type.
  3. Switch View to HTML source to see the tags rather than the rendered output.
  4. Click Copy HTML to put the source on your clipboard, or Download .html for a standalone file.

What does it do?

This converts Markdown to HTML using CommonMark plus GitHub Flavored Markdown (GFM), with soft line breaks rendered as <br>. You can see the rendered preview, or flip to HTML-source view to inspect the generated tags. The output is suitable for pasting into blog platforms, email tools, or anywhere HTML is accepted.

Example

Input Markdown:

# Release notes

We shipped **three** things this week:

- [x] Faster cold start
- [ ] Dark mode (next week)

See the [docs](https://example.com/docs) for details.

```js
console.log("hello");
```

Rendered HTML source:

<h1>Release notes</h1>
<p>We shipped <strong>three</strong> things this week:</p>
<ul>
<li><input type="checkbox" checked disabled> Faster cold start</li>
<li><input type="checkbox" disabled> Dark mode (next week)</li>
</ul>
<p>See the <a href="https://example.com/docs">docs</a> for details.</p>
<pre><code class="language-js">console.log("hello");
</code></pre>

Common Markdown pitfalls

  • Missing blank line before a list. Intro text\n- item renders as one paragraph. Put a blank line between the intro and the first list item.
  • Indented code block when you wanted a paragraph. Four leading spaces turn any line into a code block. Remove the indentation or use a fenced ``` block explicitly.
  • Broken table. Every GFM table needs a separator row (| --- | --- |) with at least three dashes per column, and the same number of pipes on every row.
  • Link with spaces in the URL. [click](my page.html) breaks the parser. URL-encode the space as %20 or use angle brackets: <my page.html>.
  • Asterisks inside words. wild*card may or may not render as emphasis depending on surrounding text. Escape with a backslash: wild\*card.
  • HTML escaping inside code blocks. Pasted snippets with &lt; show up literally because they are already escaped. Paste the raw source before escaping.

Is my data private?

Yes. We don't save any of the Markdown you paste here, and we don't keep the exported HTML either. Nothing is stored, logged, or retained — everything is discarded the moment you close or refresh the tab. There's no record on our side of what you drafted. Feel free to verify in your browser's developer tools.

Frequently asked questions

Which Markdown flavor does this support?

CommonMark plus GitHub Flavored Markdown (GFM). That covers tables, fenced code blocks, task lists, strikethrough, and autolinked URLs. Line breaks inside paragraphs become <br> tags because the breaks option is enabled — this matches how comments render on GitHub and most chat apps.

Is HTML in my Markdown sanitized?

No. The rendered preview passes raw HTML through by default. This keeps things like embedded <details> or <kbd> working. Do not paste untrusted Markdown and copy the output into a public site without running it through a sanitizer like DOMPurify first.

Are footnotes, math, or diagrams supported?

No. This is vanilla GFM. Footnotes, math (KaTeX/MathJax), and Mermaid diagrams are GitHub or platform extensions and are not rendered here. If you need them, use a Markdown renderer configured with the relevant plugins, or paste the output into a platform that renders them.

What happens when I click Copy HTML?

The rendered HTML source is written to your clipboard using the Clipboard API. You get the HTML without the wrapper page chrome — just the tags that represent your Markdown. Paste into a CMS, an email editor, or directly into a file. No files are created on disk.

Why do my tables look misaligned?

GFM tables need a header row, a separator row with at least three dashes per column, and pipes between cells. A missing pipe or a separator row with only two dashes silently fails. Switch to the HTML source view to see whether a <table> was actually produced.

Do you save the Markdown I paste here?

No. We don't save any Markdown you type or paste, and we don't keep the rendered HTML you download either. Everything is discarded as soon as you close or refresh the tab — no logs, no record on our side of what you wrote. You can check your browser's developer tools if you'd like.

Related tools