Markdown preview
Render Markdown to HTML live as you type.
You are writing a README, a ticket description or a blog draft, and you want to know how the headings, that table and the code block will actually land before pasting them anywhere. Type on one side, read the result on the other, and copy the HTML if you need it.
How it works
How it renders
The preview refreshes a moment after you stop typing (about 150 ms), so it keeps up without flickering on every keystroke. A counter under the editor tracks the character count, which helps when a field has a limit. Copy HTML places the generated markup on your clipboard and Clear empties the editor.
Which syntax works
GitHub-flavored Markdown is enabled, so beyond the basics you get:
- Tables built with
|pipes - Fenced code blocks using triple backticks
- Task lists —
- [ ]and- [x] - Strikethrough with
~~text~~ - Bare URLs turned into links automatically
Single line breaks are honoured here, which differs from strict Markdown, where a new paragraph needs a blank line or two trailing spaces. Text that looks correctly broken in this preview may collapse into one paragraph in a renderer without that setting.
About HTML in the input
Raw HTML is passed through a sanitizer before it reaches the preview, so scripts and event handlers are stripped out while ordinary formatting tags survive. That also means the HTML you copy is the cleaned version, not a verbatim copy of what you typed. Everything is processed in your browser — nothing you write is uploaded.
Terms explained
- Markdown
- A plain-text formatting syntax where marks such as `#` and `*` stand in for headings and emphasis.
- GFM
- GitHub-Flavored Markdown, an extension adding tables, task lists, strikethrough and automatic links.
- Fenced code block
- Code wrapped in triple backticks, kept exactly as written instead of being reformatted.
- Sanitizing
- Stripping tags and attributes that could execute code, so the rendered HTML is safe to display.
- Soft line break
- A single newline. Shown as a real line break here, but ignored by strict Markdown parsers.
Frequently asked questions
Does the preview match GitHub exactly?
Close, but not identical. Core GFM syntax renders the same way, while GitHub extras such as issue references, @mentions and emoji shortcodes are platform features that will not resolve here.
Why is my table not rendering?
A table needs a separator row of dashes directly beneath the header, like `| --- | --- |`, with no blank line between them. A missing or misaligned separator makes the whole block fall back to plain text.
Can I paste HTML into the editor?
Yes, and it will render, but it passes through a sanitizer first. Formatting tags survive while scripts, iframes and event attributes are removed.
Is my draft saved anywhere?
No. Everything lives in the page and is discarded when you close or reload the tab, so copy anything you want to keep before leaving.
Why does the copied HTML look different from what I wrote?
What you copy is the sanitized, rendered output rather than your source. Escaped characters, normalized attributes and removed tags account for the differences.
Tell us what went wrong and we'll fix it fast. (Leave an email if you'd like a reply.)