Free · Auto-saves · Nothing uploaded

Markdown editor

Write Markdown with live preview, auto-saved in your browser. Format with one-click tools, then export to HTML, Markdown or PDF.

0 words · 0 chars Saved

🔒 Your document is saved only in this browser on this device — never uploaded.

Why use it

👀

Live preview

See formatted output update instantly as you type, side by side with your Markdown.

💾

Auto-save

Your draft is kept in your browser, so a refresh or closed tab never loses your work.

📤

Export anywhere

Copy clean HTML, or download a .md / .html file, or print to PDF.

Which Markdown this actually is

John Gruber's original 2004 Markdown was defined mostly by a Perl script and a page of prose, and the prose left genuine ambiguities — how many spaces indent a nested list, what happens when emphasis markers overlap, whether a list interrupts a paragraph. Different implementations resolved those differently, so the same document could render three ways.

CommonMark exists to close that gap: it is a precise specification with an extensive test suite, and it is what this preview follows. On top of it sit the GitHub Flavored Markdown extensions, which are the features most people assume are simply "Markdown" but are not in the original at all — tables, strikethrough with ~~text~~, task lists, fenced code blocks with language tags, and autolinking of bare URLs.

This matters when you move a document between systems. A table that renders on GitHub may come out as literal pipe characters in a strict CommonMark renderer, and footnotes, definition lists and inline math are extensions that many parsers do not implement at all.

The syntax details that surprise people

Line breaks are the single most common frustration. A single newline inside a paragraph is not a break — it collapses to a space, matching HTML's own whitespace handling. To force a break you either end the line with two trailing spaces, which is invisible in most editors and frequently stripped by formatters, or use a backslash at the end of the line, which is explicit and survives editing. A blank line starts a new paragraph.

List indentation is the second. In CommonMark, a nested list item must be indented to align with the content of its parent, not by a fixed number of spaces. Under - item the content column is two, so two spaces nest correctly; under 1. item it is three. Mixing tabs and spaces here is what produces lists that flatten unexpectedly.

Underscores behave differently from asterisks inside words: snake_case_name is left alone, because intra-word emphasis with underscores is disabled specifically to avoid mangling identifiers, while * would emphasise there. And any line beginning with a number followed by a period becomes an ordered list, which is why a paragraph starting "1999. It was a good year" renders as a list item numbered 1999.

Markdown is not a sanitiser

By specification, Markdown permits raw HTML to pass straight through to the output. That is a deliberate feature — it is how you embed anything the syntax does not cover — but it means a Markdown parser is not a security boundary. If you render user-submitted Markdown and insert the result into a page, a <script> tag or an onerror attribute in the source becomes executable script in your application.

Link syntax is an easy blind spot too, since [text](javascript:...) is structurally a normal link. Any pipeline that accepts untrusted Markdown needs an HTML sanitiser with an allowlist running after the Markdown conversion, not a regex filter before it. Your preview here is rendered in a sandboxed context and never leaves the browser, so you can safely paste a document you have not vetted.

Markdown editor FAQ

Does it auto-save?

Yes — your document is saved to your browser as you type and restored when you return.

Can I export?

Copy the rendered HTML, download a .md or .html file, or print to PDF.

Is it private?

Completely — everything runs in your browser and is stored only on your device.

Which Markdown features work?

Headings, bold/italic, links, images, lists, tables, blockquotes and code blocks, GitHub-style.

Why did my single line break disappear?

A single newline inside a paragraph collapses to a space by design. End the line with a backslash, or with two trailing spaces, to force a hard break — or leave a blank line to start a new paragraph.

Are tables part of Markdown?

Not of the original or of strict CommonMark. Tables, task lists and strikethrough are GitHub Flavored Markdown extensions, so a document using them may render differently in other tools.