Markdown Preview

Type or paste Markdown and see the rendered page beside it, or below it on a phone, as you type; the editor and the preview scroll together. Export it as a self-contained HTML file, copy the HTML, or save it as PDF through your browser's print dialog. Rendering runs inside your browser: your text is never sent anywhere.

Markdown Preview

or drop a file here. It stays on this device.

How it works

  1. Type or paste Markdown, or open a .md file. The preview beside it, or below it on a phone, updates as you type; Tab inserts two spaces.
  2. Check headings, lists, tables, code blocks (in colour, in the languages the questions below name), footnotes and links in the preview; scrolling either side scrolls the other to the same place. Word count and reading time are shown underneath.
  3. Press Export HTML to download a complete HTML page with a small built-in stylesheet, or copy the body HTML to paste elsewhere. Save as PDF opens your browser's print dialog with the document alone: choose Save as PDF as the destination.

Questions

Which Markdown syntax is supported?

CommonMark's everyday constructs: ATX and setext headings, paragraphs, emphasis and strong emphasis, inline code, fenced and indented code blocks, block quotes, nested bullet and numbered lists, links with titles, images, autolinks, thematic breaks, hard line breaks, backslash escapes and entities, plus the GitHub extensions for tables, task lists, strikethrough, bare URLs and footnotes: [^label] refers to a note written on its own line as [^label]: text (continued on lines indented by four spaces); the notes are numbered in the order first referred to and listed at the end, each with a link back. Code in a fenced block is in colour when its language is JavaScript (js), TypeScript (ts), JSON, Python, HTML or XML, CSS, SQL, shell (bash, sh), Java, C, C++, C#, Go, Rust, PHP, Ruby or YAML; other code is shown plain. Not supported: link reference definitions ([text][ref]). It is a compact renderer written for this page, not a full CommonMark implementation, so rare edge cases may render differently from other tools.

Do the editor and the preview scroll together?

Yes, both ways: scroll the editor and the preview shows the same part of the document; scroll the preview and the editor follows. Each block of the preview, list item and table row knows the line of your text it starts on, so a long document stays matched within a line.

How does Save as PDF work?

It opens your browser's print dialog with the document alone, the page's controls left out: choose Save as PDF (Microsoft Print to PDF on Windows) as the destination, and the browser writes the file on your device. The PDF has the fonts the preview uses, its pages broken between blocks where it can (a code block, a table row or a picture that fits on one page is not split, and a heading stays with what follows it), and its links: web and e-mail links go to their addresses, footnotes and links to headings go to their places in the file. Save as PDF always prints the text on screen: a change still being drawn, or a long document's paused preview, is drawn first. Ctrl+P prints the same once the preview shows the text on screen.

What happens to HTML inside the Markdown?

It is shown as text, never rendered. A script tag or an inline event handler in your document appears literally in the preview and in the exported file. Link and image addresses are limited to http, https, mailto, tel, relative and fragment URLs, and an image's may also be a picture written in as a data: URL (PNG, JPEG, GIF or WebP, base64); anything else, such as javascript:, a data: link or an SVG data: image, is replaced with #. This keeps the preview safe without a separate sanitiser.

Which images does the preview show?

Pictures written into the document as data: URLs (PNG, JPEG, GIF or WebP, base64) are shown, since they need no request. A picture at an https address appears as a labelled link until you press Show pictures from the web, which shows them for the open document only and is not remembered: showing them asks each picture's server for it, so that server sees your IP address and the time; nothing you typed is sent. A picture at an http address or a file path stays a link: this page loads pictures only from https addresses, and it has only the text, not the files beside it. The exported HTML contains the normal img tag, so a browser opening it loads each image from its address, a relative path from the folder the file is in; an address replaced with #, as above, shows no image.

How large a document can I preview?

Up to 5,242,880 characters. The live preview follows your typing for documents up to 524,288 characters; above that it pauses, so typing stays smooth, and the preview panel says so, with a Show the preview button (Export HTML renders it too). The Markdown is rendered in the background, in a worker of the page's own, so the page keeps answering meanwhile: on a desktop computer a 1 MB document takes about a second and one near the limit about two, plus a second for the panel to show it, longer on a phone. A rendering still running after 15 seconds is stopped, and the preview panel says why; the next change to the text renders it again.

Does it work offline?

Keep a connection until the first preview finishes rendering. You can then edit and export offline in this open page. A spare renderer loads in the background, but it may not be ready yet; after a rendering is stopped, you may need to reconnect before rendering again. Nothing you write is uploaded.

Is my text uploaded?

No. The page loads a small script into your browser and every operation runs on your device. You can check this yourself in the browser's network panel: after the page has loaded there are no upload requests. Closing the tab discards the text.

Do I need an account or to pay?

No. These basic tools are free and add nothing to your data. The only limits are the tool's own: documents up to 5,242,880 characters as JavaScript counts them (UTF-16 units), opened files up to 20 MB. Within them, the practical limit is your device's memory.

What does this page keep in my browser?

Nothing you open or type. While the tab is open, the tool pages keep a short list of the steps taken in it, in the tab's session storage: the step (page opened, started, succeeded, first success, used again or failed), the tool's name, the time, how many files were used and, for a failure, an error code; never a file name, the contents of a file or your text. It holds at most the latest 200 steps, and the browser deletes it when the tab closes. The page never sends it. Where a Report a problem button is shown, you can attach the last 20 steps to your report; nothing is attached unless you tick that box. In local storage the page keeps only choices you made: a Light or Dark theme until you choose System again, the language you picked with the EN / 中文 switch if it differs from your browser's language, and this tool in your recently used list if you switched that list on at the tools page.

Questions or problems

Found a problem or missing feature? Tell us. Please describe the steps; do not send confidential data.