Markdown Online

Markdown is the glue language of AI — prompts, LLM output, and docs handed between tools all pass through it. This is one free, all-in-one workspace for it: write with a full formatting toolbar and live preview, import existing HTML or CSV/JSON, and export to Word, PDF, or HTML — instead of switching between ad-bloated converters and heavy desktop apps. Everything runs locally in your browser; your draft is never uploaded to a server.

Open the editor No signup, no install — it opens straight into a full-width writing workspace.

How the editor works

  1. Open the editor and start typing in the Write pane, or open the Import menu to convert existing HTML or CSV/JSON into Markdown and drop it in at your cursor.
  2. Use the toolbar, or shortcuts like Ctrl/Cmd+B for bold, Ctrl/Cmd+I for italic, and Ctrl/Cmd+K for a link, to insert formatting without memorizing syntax.
  3. Switch between Write, Split, and Preview with the toggle above the toolbar, depending on whether you want full width for typing or for reviewing the rendered result.
  4. When you're done, copy the Markdown or HTML, copy a rich version for Word or Google Docs (or download a real .docx file with true Word styles), download a .md or .html file, or print straight to PDF.

A live preview without losing the syntax

The editor pairs a plain-text Markdown pane with a preview rendered by marked, a GitHub-Flavored Markdown parser, so tables, task lists, strikethrough, and autolinked URLs all render correctly by default — no configuration needed. The two panes scroll together in Split view, so a heading near the top of a long draft stays lined up with its rendered counterpart instead of drifting apart as you write. The toolbar exists for anyone who doesn't want to remember that a link is [text](url) or that a quote needs a > at the start of the line — select some text, click a button, and the syntax is inserted around it (or a sensible placeholder, if nothing is selected). The preview is always sanitized with DOMPurify before it touches the page, so pasted content with a stray <script> tag renders inert rather than executing.

The toolbar's Code block menu inserts a fenced block in any of 30-plus languages, Diagram inserts a starter ```mermaid block for a flowchart, sequence diagram, and similar, and ∑ Math inserts a $$block$$ LaTeX equation. There's nothing to switch on first: as soon as the page sees $inline$/$$block$$ math or a ```mermaid fence anywhere in your draft, it quietly loads KaTeX or Mermaid and renders it — in the preview, the rich copy, the HTML export, and Print / Save as PDF alike. Smart typography (straight quotes become curly quotes, --/--- become en/em dashes) and single line breaks rendering as <br> are both applied automatically — no toggles to switch on first.

Import existing content instead of starting from scratch

The Import menu adds two one-way conversions into your draft, so you don't have to start from a blank page. Import from HTML uses turndown, the standard HTML-to-Markdown library, with the turndown-plugin-gfm extension turned on so GitHub-Flavored constructs — tables, strikethrough, and task-list checkboxes — convert correctly instead of degrading to plain text; pick a bullet marker, code block style, and heading style before inserting. Import from CSV/JSON parses CSV with PapaParse (quoted fields containing commas are handled correctly) or treats pasted JSON as an array of objects, taking the union of every key as the column list so the table still lines up even when some rows are missing a field, then builds a properly aligned Markdown table with your choice of left/center/right alignment. Either way, the result lands right at your cursor in the Write pane — nothing auto-replaces your draft — so you can review it, tweak it, and keep writing.

Your draft is saved locally — nothing is uploaded

About half a second after you stop typing, the editor saves your current text to your browser's local storage and picks it back up automatically the next time you open this page in the same browser — so an accidental tab close or refresh doesn't cost you a paragraph. That save never leaves your machine: there's no account, no server copy, and no sync across devices, which is a real trade-off against cloud editors — if you need the same draft on your phone and your laptop, this isn't that tool. What you get in exchange is a genuine privacy guarantee for anything you'd rather not send to a third party, like an unpublished draft or notes pasted from an internal doc. Hit Clear at any time to wipe both the editor and the saved copy; otherwise it just sits in that one browser until you overwrite it by writing something new.

Exporting: Word, HTML, and PDF

Seven buttons cover every hand-off. Copy Markdown and Download .md give you the raw source. Copy HTML and Download HTML give you the converted markup as a plain fragment. Copy for Word / Docs puts a quick, formatted paste on your clipboard for Word or Google Docs — styling depends on the app's own paste import, so editing a style like Normal afterward may not restyle everything that came from it. Download Word (.docx) instead builds a real .docx file with true Word styles (Normal, Heading 1–6, Quote, Code Block), so editing a style in Word's Styles pane reliably restyles every paragraph that uses it — the more reliable option for a document you'll keep editing in Word. Both carry over tables, images, and rasterized Mermaid diagrams. And Print / Save as PDF opens your browser's print dialog with print-appropriate styling already applied. All seven read from the same draft, so whichever you reach for is always in sync with what's on screen.

Formatting quirks worth knowing

Lists need a blank line before and after them to render as a proper list rather than getting absorbed into the surrounding paragraph, and a nested item needs at least two spaces of indent under its parent. A literal asterisk or underscore — say, describing a variable named *args — needs a backslash in front of it (\*args) or it gets read as emphasis. Fenced code blocks with a language tag after the triple backticks (```python, ```js, and around 35 other common languages) get syntax-highlighting colors in the preview, GitHub-style — the exported Markdown, copied/downloaded HTML, rich copy, and printed PDF stay as plain language-*-tagged markup, since the coloring is a preview convenience rather than something baked into what you take with you.

Import edge cases

Nested tables, <iframe>s, forms, and inline SVG have no Markdown representation and are dropped or passed through as raw HTML depending on the tag when importing HTML — make sure what you paste is actual markup (a browser's "Inspect" or "View Source", not a normal copy of rendered page text) rather than plain text. For Import from CSV/JSON, a pipe character inside a cell is automatically escaped to \| and line breaks inside a quoted field become <br>, so neither can break the table structure; rows with fewer columns than the header are padded with empty cells rather than shifting the rest of the row out of alignment. Watch for a leading byte-order mark or a semicolon delimiter from a European-locale spreadsheet export — either can make a whole CSV file parse as a single column, which shows up immediately as a one-column result you can catch before inserting it.

Frequently asked questions

Is this free, and does my content get uploaded anywhere?

Yes — it's completely free, with no signup and no limits. Writing, previewing, importing, and exporting all happen entirely in your browser using JavaScript; nothing you type or import is ever sent to a server.

Will I lose my draft if I close the tab or refresh?

No. About half a second after you stop typing, your draft autosaves to your browser's local storage and reloads automatically the next time you open this page in the same browser. Use the Clear button to remove it explicitly.

Can I import existing HTML or CSV/JSON instead of writing Markdown from scratch?

Yes. Open the Import menu above the editor and choose HTML or CSV/JSON — paste content or upload a file, and the converted Markdown is inserted right at your cursor.

What happens to HTML formatting that Markdown can't represent, when I import HTML?

It's dropped. Inline styles, custom classes, colors, fonts, and multi-column layouts have no Markdown equivalent, so the importer keeps structure — headings, lists, links, tables, code, emphasis, strikethrough, task lists — and discards presentation.

Can I export what I write as Word, PDF, or HTML?

Yes. Use "Copy for Word / Docs" for a quick formatted paste, "Download Word (.docx)" for a real .docx file with true, editable Word styles, "Copy HTML" or "Download HTML" for the underlying markup, or "Print / Save as PDF" to generate a PDF through your browser's print dialog.

Can I write math equations or diagrams?

Yes. Write KaTeX-powered $inline$ and $$block$$ LaTeX, or Mermaid-powered ```mermaid flowcharts and sequence diagrams — the toolbar's Code block, Diagram, and Math buttons insert them, or just type the syntax directly. Both render automatically as soon as the page detects them, with no toggle to switch on first.

What does "Smart typography" do?

It converts straight quotes into curly quotes and --/--- into en/em dashes — useful for polished writing. It's on by default, along with single line breaks rendering as <br>, so both apply automatically as you write.

Does the preview syntax-highlight code blocks?

Yes. Fenced code blocks with a language tag — ```python, ```js, and around 35 other common languages — are colored in the preview, GitHub-style. The Markdown you write, plus copied, downloaded, and printed output, stay plain markup with just a language-* class.

What keyboard shortcuts are supported?

Ctrl/Cmd+B for bold, Ctrl/Cmd+I for italic, and Ctrl/Cmd+K for a link, alongside toolbar buttons for headings, lists, quotes, tables, and code.