Markdown Editor
Write markdown on the left, see it rendered live on the right — headings, lists, tables, code and quotes, with copy-as-HTML and standalone-file download. Pasted HTML stays visible as text, so the preview is safe by construction.
The syntax on one screen
| Write | Get |
|---|---|
# Title … ###### Small | headings, six levels |
**bold** *italic* `code` | inline emphasis and code |
[text](https://url) | a link; add "title" after the URL for a tooltip |
 | an image |
- item / 1. item | lists; indent two spaces to nest |
> quoted | blockquote — can hold headings, lists, anything |
```js … ``` | a code block with a language class |
| a | b | + |---|---| | a table; :-- and --: align |
--- | a horizontal rule |
Everything renders locally; the page works offline once loaded.
Frequently asked questions
Which markdown dialect does the preview speak?
The commonly-written core plus GitHub-style tables: ATX headings, bold and italic, inline code and fenced code blocks with a language tag, links and images with optional titles, ordered and unordered lists nested by indentation, blockquotes that can hold any other block, horizontal rules, and the two-trailing-spaces line break. Setext headings and reference-style links are deliberately absent — they are rare in the wild.
Why does HTML I type stay visible as text?
By design. This renderer escapes everything before reading any markdown, so a pasted <script> renders as the characters, never as an element — and a [link](javascript:…) loses its destination while keeping its text. That safety is what makes the live preview possible at all: the output can be injected into the page because it cannot carry code.
Why doesn't *this* make snake_case_names italic?
Underscore emphasis only applies at word boundaries, matching how markdown is actually written: identifiers full of underscores survive untouched, while _a phrase set off by spaces_ italicises. Asterisks work anywhere, so *this* is the operator to reach for mid-word.
What do I get from Copy HTML versus Download .html?
Copy HTML puts the rendered fragment on the clipboard — the h1/p/table elements only, ready to paste into a CMS, an email editor or a template. Download .html wraps the same fragment in a minimal standalone page with readable styling, so the file opens correctly on its own.
How do I make a line break without a new paragraph?
End the line with two or more spaces. A single newline soft-wraps into the same paragraph — the behaviour that surprises everyone once — and a blank line starts a new paragraph. The two-space rule is markdown's own, invisible in the source, which is why editors that trim trailing whitespace quietly break it.
Is my text uploaded anywhere?
No. Rendering runs entirely in this page — drafts, notes and documentation are exactly the kind of text that should not travel, and here it never does. The page keeps working with the network disconnected.
Related tools
- Word & Character CounterLive word, character, sentence and paragraph counts, with reading time, keyword density, and whether the text fits a post, a search title or one text message.
- Sort & Dedupe LinesSort, dedupe, shuffle, trim and number lines — natural sort puts file2 before file10 — or compare two lists.
- Lorem Ipsum GeneratorPlaceholder text by paragraphs, sentences or exact word count — starting with the classic line everyone recognizes, shaped like real prose.