Markdown Preview
Write Markdown and see a live HTML preview, rendered safely in your browser.
Runs in your browser — files never leave your device
How it works
Type Markdown in the left pane and the right pane re-renders on every keystroke, so you see the final formatting while you write. Parsing is done by the marked library — a widely used JavaScript Markdown parser — configured with GitHub-flavored defaults. The editor starts with a small sample document; replace it with your own text.
All the core syntax is supported: headings from # to ######, bold and italic, links and images, blockquotes, numbered and bulleted lists, inline code and fenced code blocks. The GitHub-flavored extras work too: tables written with pipes, strikethrough with ~~two tildes~~, task lists (- [ ] and - [x] render as checkboxes), and bare URLs that turn into links automatically.
One rendering rule worth knowing: the parser runs with the breaks option enabled, so a single line break becomes a visible new line in the preview — the way GitHub comments behave — whereas strict CommonMark would join the lines into one paragraph unless you leave a blank line. A concrete example of the output: typing **bold** and _italic_ produces the HTML <p><strong>bold</strong> and <em>italic</em></p>, which the preview displays as bold and italic text.
Use it to draft READMEs, GitHub issues and pull-request descriptions before posting, write blog posts for static-site generators, preview documentation pages, or check that a table lines up before you commit it — the live loop is much faster than edit–commit–refresh.
Gotchas: raw HTML embedded in the Markdown is rendered as-is, which is standard Markdown behavior but differs from platforms that sanitize aggressively. Fenced code blocks are tagged with their language but not syntax-highlighted — you get clean monospaced text. And since breaks are on here, line breaks that look right in this preview may collapse on renderers that use strict CommonMark defaults.
Frequently asked questions
- Which Markdown flavor is supported?
- GitHub-flavored Markdown, rendered by the marked parser with the breaks option on. In practice that means everything in core Markdown plus tables, strikethrough, task lists and autolinked URLs — very close to what a GitHub comment box produces.
- Are tables and task lists supported?
- Yes. Pipe-syntax tables render as real HTML tables, and list items written as - [ ] or - [x] render as unchecked and checked boxes (the checkboxes are display-only, as on GitHub). Strikethrough written with ~~two tildes~~ works as well.
- Why does a single Enter create a new line?
- The preview enables the breaks option, so one line break renders as a visible line break — matching GitHub comments and most chat apps. Standard CommonMark ignores single newlines inside a paragraph, so if your target renderer is strict, separate paragraphs with a blank line instead of relying on this.
- Does it highlight code syntax?
- No. Fenced code blocks render as monospaced blocks and carry a language class (a js fence produces class="language-js"), but no colorizer is bundled, so the code stays one color. The structure is still useful for checking that fences open and close where you intended.
- Can I mix raw HTML into the Markdown?
- Yes — HTML embedded in the Markdown passes through to the preview unchanged, which is standard Markdown behavior. Note that platforms differ: GitHub sanitizes many tags away, so HTML that renders here may be stripped where you finally paste it.
- Is my Markdown uploaded?
- No — parsing and rendering happen in your browser on each keystroke. Your text never leaves the page.
Related tools
- Word & Character CounterCount words, characters, sentences, paragraphs and lines instantly. Runs entirely in your browser — your text never leaves your device.
- Case ConverterConvert text between UPPERCASE, lowercase, Title Case, camelCase, snake_case, kebab-case and more — instantly in your browser.
- Slug GeneratorTurn any title into a clean, URL-friendly slug. Removes accents and punctuation; runs in your browser.
- Text ReverserReverse any string character by character. Handles Unicode correctly; runs locally.
- Remove Duplicate LinesStrip duplicate lines from a list, keeping the first occurrence. Optional case-insensitive and trim modes.
- Sort LinesSort lines alphabetically, ascending or descending, with optional case-insensitive comparison.