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  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
- 1Paste your Markdown source into the input panel on the left.
- 2The HTML result appears in the output panel on the right as you type.
- 3Click Copy in the output header to copy the HTML source.
- 4Click Download to save the result as an
.htmlfile. - 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 F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run 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>.
# Heading 1 A paragraph with **bold** and *italic*. - one - two
<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?
- [ ]), 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?
Does the output include a stylesheet?
Is the Markdown sent anywhere?
How are link and image titles handled?
<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.