Skip to content

Markdown Preview

Live Markdown preview that renders a GitHub-Flavored subset to clean HTML in your browser. Copy or download the HTML; nothing you type is ever sent anywhere.

Runs entirely in your browser. Nothing you paste here is sent to us or anyone else โ€” there is no server processing, no logging of input, and no third-party scripts on this page.

A Markdown preview tool turns Markdown text into formatted HTML as you type, so you can see exactly how your headings, lists, links, and code blocks will look before you publish. Type or paste Markdown on the left and the rendered result appears live on the right. When it looks right, use Copy as HTML to grab the underlying markup. Everything runs in your browser, and nothing you type is sent anywhere.

What is Markdown?

Markdown is a lightweight plain-text formatting syntax created to be easy to read and write. Instead of clicking toolbar buttons, you add small symbols to your text: a # for a heading, asterisks for bold or italic, hyphens for a bullet list. Those symbols are then converted into HTML for display. Because the source stays readable even before conversion, Markdown has become the default for README files, documentation, static-site content, chat apps, issue trackers, and note-taking tools.

What this tool renders

This previewer implements a practical subset of GitHub-Flavored Markdown (GFM) โ€” the parts people actually use most days:

  • Headings โ€” # Title through ###### Title.
  • Emphasis โ€” **bold**, *italic*, and `inline code`.
  • Lists โ€” ordered (1.) and unordered (-, *, +), with one level of nesting.
  • Code fences โ€” triple-backtick blocks with an optional language label.
  • Links and images โ€” [text](url) and ![alt](url), with unsafe URL schemes stripped.
  • Blockquotes, tables with column alignment, and horizontal rules.

A worked example

Given this Markdown source:

# Release notes

- Fixed the **login** bug
- Added a `--verbose` flag

See the [changelog](/changelog) for details.

the tool produces a heading, a two-item bullet list with bold and inline-code emphasis, and a paragraph containing a link โ€” exactly what a reader would see once the page is published. Toggle to Copy as HTML and you get the clean <h1>, <ul>, and <a> markup ready to paste elsewhere.

Safety: why raw HTML cannot run here

Every angle bracket in your source is escaped before any Markdown formatting is applied. That ordering matters: it means a pasted <script> tag, an onerror attribute, or any other embedded HTML is displayed as literal text and never becomes live markup. On top of that, link and image URLs are checked, so common attack vectors such as javascript: and data: URLs are rejected and shown as plain text instead of being turned into clickable elements. The only HTML that reaches the preview is the safe structure the parser itself generates.

Common mistakes and how to fix them

Symptom Usual cause
Bullet list not rendering Missing space after the -, or no blank line before the list.
Bold or italic ignored Unmatched * or _, or a space between the marker and the word.
Table not forming The separator row (| --- | --- |) is missing or has the wrong number of columns.
Code block leaking formatting The closing triple backticks are missing, so the fence never ends.

When to use it

Reach for a live previewer whenever you are drafting content in Markdown and want confidence before publishing: writing a README, composing release notes, drafting a blog post for a static-site generator, or building an email in a Markdown-aware editor. It is also a quick way to convert a snippet of Markdown into HTML you can paste into a CMS that does not accept Markdown directly โ€” copy the generated markup and drop it in.

Because the whole tool runs in the browser with no libraries and no network calls, it is safe for private drafts and works offline once the page has loaded. Your text is read only to build the preview and is discarded the moment you clear the field or leave the page.

Frequently asked questions

Is my Markdown sent to a server?

No. The preview is generated entirely in your browser by a small parser that ships with the page. Nothing you type is uploaded, logged, or stored, and the tool keeps working with the network disconnected.

Which Markdown features are supported?

A practical GitHub-Flavored subset: headings, bold, italic, inline code, fenced code blocks, links, images, ordered and unordered lists (including one level of nesting), blockquotes, tables, horizontal rules, and paragraphs.

Can pasted HTML or a script tag run in the preview?

No. Every angle bracket in your source is escaped before any Markdown is applied, so a pasted <script> tag is shown as literal text and can never execute. The only HTML in the preview is the safe markup the parser generates.

What does the Copy as HTML button do?

It copies the generated HTML source (the tags, not the rendered page) to your clipboard, so you can paste the markup straight into a CMS, email template, or static site. Download HTML saves the same markup as a file.

Why does a link in my Markdown not work?

Links are sanitised for safety. Standard http, https, mailto, anchor, and relative links render normally, but unusual schemes such as javascript: or data: are rejected and left as plain text so they cannot be used for attacks.

Is this full CommonMark?

No. It is a compact, dependency-free subset that covers the syntax people use every day. Rarely used features such as reference-style links, footnotes, definition lists, and deeply nested structures are intentionally left out rather than rendered incorrectly.

Why is the preview slightly different from GitHub?

Every renderer makes small choices about spacing and edge cases. This tool aims for a faithful, readable result for common documents; for the exact GitHub result, preview on GitHub itself. The generated HTML here is clean and standards-based.

Does it change my text?

Your Markdown source is never altered. The tool only reads it to produce a preview and an HTML copy. Clearing or reloading the page discards everything because nothing is saved.