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.
How the editor works
- 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.
- 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.
- 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.
- When you're done, copy the Markdown or HTML, copy a rich version for Word or Google Docs (or download a real
.docxfile with true Word styles), download a.mdor.htmlfile, 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.