Skip to content
100% in your browser. Nothing you paste is uploaded — all processing runs locally. Read more →

Markdown → HTML

Paste Markdown, copy the rendered HTML. Output is sanitized and safe to paste into any CMS or blog platform.

🔒 100% client-side · no upload · no account

Why convert client-side

Many "Markdown to HTML" sites upload your text to their server, run it through a parser there, and send the HTML back. That's a privacy and bandwidth tradeoff for nothing — every modern browser can run marked just fine, and the converter is ~30KB of JavaScript.

This tool does it in your browser. Open DevTools → Network and verify: no requests are sent while you convert.

What's included in the output

GFM features that get rendered:

What gets sanitized

DOMPurify strips:

Embedded HTML that's safe (e.g. <details>, <sub>, <kbd>) passes through. Markdown supports raw HTML by spec; the sanitizer ensures it can't be weaponized.

Batch conversion (CLI alternatives)

For converting many files at once, use a command-line tool:

# marked (Node)
npm install -g marked
marked input.md > output.html

# pandoc (cross-platform, more features)
pandoc input.md -o output.html

# mdbook (Rust, great for docs)
mdbook build

# In your build pipeline (JavaScript)
import { marked } from "marked";
const html = marked.parse(markdown);

HTML structure

The "Download .html" button packages the output in a minimal, styled HTML document:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>Markdown export</title>
  <style>/* GitHub-styled defaults */</style>
</head>
<body>
  <!-- your rendered markdown -->
</body>
</html>

Open the file in any browser, or share it as a self-contained doc. For paste-into-CMS use cases, prefer "Copy HTML" — that gives you just the inner content.

FAQ

What's the difference between this page and the main viewer?

Same engine — but this page defaults to the preview-only mode and frames the UX around 'I have markdown, give me HTML.' Click 'Source' to switch to split view.

What HTML do I get?

Clean GFM-rendered HTML. Standard tags only (<h1>, <p>, <table>, etc.) — no inline styles, no JavaScript, no framework-specific markup. Safe to paste into any CMS.

Is the HTML sanitized?

Yes. Output passes through DOMPurify — <script>, event handlers, and other risky patterns are stripped. The 'Copy HTML' button always gives you safe-to-render output.

What's the difference between 'Copy HTML' and 'Download .html'?

Copy HTML gives you the inner content only — the rendered tags without a wrapping document. Paste into your CMS, blog editor, etc. Download .html wraps it in a complete <html> document with default styling — open the file in any browser to view.

Can I batch-convert multiple files?

Not in the browser tool. For batch conversion, use marked or pandoc from the command line — see the code examples below.