MARKDOWN PREVIEWER

Write Markdown on the left and watch the HTML render on the right, styled exactly like a post on this site. Everything happens in your browser — nothing is uploaded.

Preview
Generated HTML

How it works

Write or paste

Type Markdown directly, open a .md file, or load the example to see the syntax.

Rendered live

The preview re-renders as you type, inside a sandboxed frame styled with this site's stylesheet.

Copy or download

Take the generated HTML with you: copy it to the clipboard, or download a complete styled .html file.

It uses the same renderer as the blog (the vendored marked behind tools/js/markdown.js) and the same stylesheet, so what you see here is what a post looks like once it is published.

Markdown cheat sheet

You typeYou get
# HeadingA level-1 heading (## for level 2, and so on)
**bold**, *italic*Bold and italic text
[text](https://example.com)A link
![alt text](/writing/img/photo.webp)An image
- itemA bulleted list
1. itemA numbered list
> quoteA blockquote
`code`Inline code
``` fenced blockA code block that scrolls sideways
| a | b | with --- under the headerA table
--- on its own lineA horizontal rule

Frequently asked questions

No. The parser runs entirely in your browser and the preview is drawn locally. Nothing you type leaves your device.

Yes. The blog build and this tool call the same renderMarkdown() with the same options and use the same stylesheet, so the preview is what gets published at /writing/<slug>/.

Markdown allows it, and the preview will show it. The blog build, however, runs the result through sanitize-html, so scripts and event handlers are stripped before a post is published. Stick to Markdown for anything you intend to publish.

The preview frame loads this site's stylesheet, so headings, code blocks, tables and quotes are typeset the way they are on the blog. It is an accurate, styled preview rather than a bare-bones render.

Privacy: this tool runs entirely in your browser. Using it makes no network requests beyond loading this page's own assets.