OmniTools
textDifficulty: 3/5

Markdown Preview

Write Markdown and see rendered HTML live, with GitHub-flavoured tables and task lists, and the output sanitised against XSS.

Preview

The rendered result appears here as you type.

Enable GitHub extensions: tables, strikethrough, task lists and autolinked URLs.

Convert a single newline to <br>, instead of CommonMark’s default of collapsing them.

Open links in a new tab with rel="noopener noreferrer nofollow".

Render image Markdown. When off, image tags are stripped from the output.

Off by default. Fetching a remote image tells that server your IP address and that you opened this text — which is how a tracking pixel works.

Sanitized preview: The HTML you see is filtered through an explicit allow-list of tags and attributes. Scripts, event handlers (onclick and friends) and javascript: URLs are removed, and unknown tags are stripped entirely. This preview is therefore not a faithful reproduction of what an unsanitized renderer would show — that is by design, because Markdown deliberately allows raw HTML, and rendering it un-filtered would be an XSS vulnerability.

How it works

  1. Type or paste Markdown in the editor; the preview updates as you type, in your browser.
  2. Toggle the rendering options — GFM, line breaks, link hardening and images — to match the flavour you target.
  3. Copy the sanitized HTML or read the outline to check your document structure.
Privacy & Processing: Everything runs in your browser. The Markdown parser and sanitizer load only on this page, and nothing you write is uploaded, stored, or sent to analytics.

Frequently Asked Questions

Is the rendered HTML safe?

Yes, and this is not optional. Markdown deliberately allows raw HTML, so an image tag with an onerror handler in the input would otherwise become executable HTML in the output. Everything is sanitised against a strict allow-list: script, iframe, object, embed, form, style and every on* handler are stripped, and javascript: and data: URLs are removed. When something is removed the tool names it rather than saying nothing.

Which Markdown flavour is supported?

CommonMark plus GitHub extensions: tables, strikethrough, task lists and fenced code blocks with language labels. Code blocks are escaped rather than rendered, so an HTML example inside a fence displays as text.

Are links modified?

Links get rel="noopener noreferrer nofollow" and open in a new tab. The noopener part stops the opened page reaching back through window.opener, which is a real attack when the destination is untrusted.

Is my document uploaded?

No. Both the Markdown parser and the sanitiser run in your browser and are loaded only on this page, so nothing you write leaves the tab.

Related Tools