Convert Markdown to HTML

Paste any Markdown document and get the rendered HTML back. The Markdown to HTML converter follows the CommonMark spec plus GitHub Flavored Markdown extensions for tables, fenced code blocks, strikethrough and task lists. Headings, lists, links, images, code blocks, blockquotes and inline emphasis all map to their semantic HTML elements. The transform runs in your browser; nothing uploads.

Input
Line 1:1 LF cloud_done Saved locally
Result Markdown to HTML
0 lines 0 chars

Markdown to HTML, plain and predictable

Markdown to HTML conversion parses CommonMark plus the GitHub Flavored Markdown extensions and emits semantic HTML. ATX headings (# through ######) map to <h1> through <h6>. Setext headings map to <h1> and <h2>. Bullet and ordered lists map to <ul> and <ol>, with nested lists supported by indentation. Inline emphasis uses <em> and <strong>. Inline code uses <code>; fenced and indented code blocks wrap in <pre><code>.

Links and images use the standard [text](url) and ![alt](url) syntax. Both inline and reference-style links resolve. Autolinks wrapped in <...> render as anchors. GFM tables, task lists (- [ ]) and strikethrough (~~text~~) render to <table>, checkbox <input> and <del>. HTML embedded inside the Markdown source passes through unchanged, since CommonMark allows raw HTML blocks; if you want to strip those, run the result through strip HTML tags after.

The output is unstyled HTML, ready to drop into a page or to feed into a downstream styling layer. Heading levels are not auto-shifted. No CSS, no class attributes, no wrapping <div>. For the inverse direction, see HTML to Markdown.

How to use convert markdown to html

  1. 1Paste your Markdown source into the input panel on the left.
  2. 2The HTML result appears in the output panel on the right as you type.
  3. 3Click Copy in the output header to copy the HTML source.
  4. 4Click Download to save the result as an .html file.
  5. 5Drop the HTML straight into a page or feed it into your styling layer.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

CommonMark plus GFM extensions

Parses CommonMark 0.30 plus GitHub Flavored Markdown extensions for tables, fenced code blocks, strikethrough, task lists and autolinked URLs. Edge cases match the published GFM test suite, so output stays compatible with content rendered on GitHub itself.

Semantic HTML, no styling

Output is plain semantic HTML: <h1>, <p>, <ul>, <table>, <pre><code>, <blockquote>, and so on. No CSS classes, no inline styles, no wrapper div. Drop it into your existing template and let the page styles handle layout.

Fenced code blocks with language hint

A fenced block introduced with three backticks plus a language tag (```js) renders as <pre><code class="language-js">. That matches the convention Prism, highlight.js and Shiki expect, so a downstream highlighter can pick up the hint without any manual rewriting.

Tables, task lists, strikethrough

GFM tables render to <table> with a <thead>, <tbody>, and column alignment from the colon row. Task list items (- [ ] and - [x]) render with a disabled checkbox input. ~~strike~~ renders as <del>.

Runs entirely in your browser

No upload, no server-side processing, no log of what you pasted. The parse and emit run on every keystroke. Documents up to a few hundred kilobytes render in under a second on a desktop browser.

Worked example

ATX heading becomes <h1>, emphasis becomes <strong> and <em>, the bullet list becomes a <ul>.

Input
# Heading 1

A paragraph with **bold** and *italic*.

- one
- two
Output
<h1>Heading 1</h1>
<p>A paragraph with <strong>bold</strong> and <em>italic</em>.</p>
<ul>
<li>one</li>
<li>two</li>
</ul>

Settings reference

Behaviour Effect on output
Spec CommonMark 0.30 plus GitHub Flavored Markdown extensions.
Headings ATX (#) and Setext both supported, mapping to <h1> through <h6>.
Lists Bullet and ordered lists, including nested lists by indent.
Code blocks Fenced (```) and indented (4-space). Fenced blocks carry the language as class="language-XYZ".
Tables GFM tables render to <table> with column alignment from the colon row.
Task lists - [ ] and - [x] render with a disabled checkbox input.
Strikethrough ~~text~~ renders to <del>.
Raw HTML CommonMark allows raw HTML blocks; they pass through unchanged.
Output styling No CSS classes added beyond language-* on fenced code; no wrapper element.

FAQ

Does it support GFM extensions?
Yes. Tables, fenced code blocks with language tags, task lists (- [ ]), strikethrough (~~text~~) and autolinked URLs all render as GitHub does. Edge cases follow the published GFM spec test suite, so output stays compatible with content rendered on github.com.
Can I keep raw HTML in the source?
Yes. CommonMark allows raw HTML blocks, and the converter passes them through unchanged. If you want to strip the HTML out of the rendered result, pipe it through strip HTML tags afterwards.
Does the output include a stylesheet?
No. The output is plain semantic HTML with no CSS, no inline styles, and no wrapper element. Drop it into a page that already has its own styles, or wrap it in your own template before serving.
Is the Markdown sent anywhere?
No. The parse and render run entirely in your browser via JavaScript. Nothing is uploaded, nothing is logged, no record of your text exists on our servers.
How are link and image titles handled?
Both inline and reference-style links and images render to <a> and <img>. The optional title attribute (the quoted text after the URL) becomes the title attribute. Reference definitions placed at the bottom of the document resolve correctly across the whole source.