Markdown previewer

Paste Markdown · see it rendered live · copy clean HTML

Private Runs in your browser. Your Markdown source stays on this page — nothing is sent to Mungomash, and no third-party API is contacted to render it.

Flavor

Source

Markdown

0 words
0 min read
0 headings
0 links
0 images

Preview

GitHub Flavored Markdown

Type or paste Markdown on the left and the rendered HTML appears here.

Markdown is many languages, not one

John Gruber and Aaron Swartz published the original Markdown spec in 2004 as a way to write HTML without writing HTML. The spec was small, the reference implementation was a few hundred lines of Perl, and the language spread fast — Reddit, Stack Overflow, GitHub, Slack, Notion, Discord, Jira, Confluence, and most static-site generators all adopted it within a decade. The catch: Gruber's original was loose enough that every adopter had to fill in the corners themselves, and they all filled them in differently.

This page lets you switch between the three flavors that cover the overwhelming majority of what writers actually paste in 2026:

  • CommonMark — the strict spec published in 2014 by Jeff Atwood, John MacFarlane, and others to nail down the corners Gruber's original left ambiguous. No tables, no task lists, no strikethrough, no autolinks. Used as the foundation by everything else.
  • GitHub Flavored Markdown (GFM) — CommonMark plus tables, task lists (- [x]), strikethrough (~~text~~), autolinks for bare URLs, and language tags on fenced code blocks. The de-facto Markdown for engineering work today.
  • GitLab Flavored — GFM plus footnotes ([^1] with [^1]: definition) and the [[_TOC_]] placeholder for an auto-generated table of contents. GitLab also defines extra blocks for math, mermaid diagrams, and video embeds; this previewer handles the footnote and TOC additions and renders the rest as their underlying code blocks.

Reddit, Discord, Slack, Notion, Jira, and Confluence each ship their own dialect on top of one of the above. Most of them are GFM-ish — the differences are mostly around mentions, channels, and embed-by-URL behavior that this page does not try to emulate.

The mistakes everyone makes

After two decades of Markdown adoption, the same handful of confusions keep recurring:

  • Asterisks vs underscores. *italic* and _italic_ both work in plain text, but _ is treated literally inside words (so snake_case_word renders as written). For emphasis inside identifiers, always use *.
  • List indentation. Nested lists need at least two spaces of indent (four to be safe). One space of indent gets you a sibling list item with weird wrapping rather than a nested child.
  • Hard line breaks. A single newline in source becomes a space, not a <br>. To force a line break, end the line with two spaces (universally) or \ (GFM, GitLab). To start a new paragraph, leave a blank line.
  • Tables alignment. The header separator row uses :--- for left, :---: for center, ---: for right. The number of dashes does not matter; the colons do.
  • Fenced code language tags. The token after the opening fence (```javascript) is the language hint for syntax highlighting downstream. CommonMark accepts the tag but does not render with it; GFM and most renderers do.
  • Tables and task lists in CommonMark source. They will not render. Switch to GFM (the toggle in the hero) or remove them.

Privacy — the actual mechanics

Every operation on this page — parsing, sanitization, rendering, the stats strip, the outline, the copy actions — runs in your browser's JavaScript engine. The page makes zero network requests for the analysis. The only network calls in the page's lifecycle are:

  • Loading the page itself (HTML, the favicon, the logo) from mungomash.com.
  • Loading the Tailwind CSS framework from cdn.tailwindcss.com, the marked Markdown parser from cdn.jsdelivr.net, and DOMPurify for HTML sanitization from the same CDN.
  • Loading the Google Analytics 4 tag for aggregate pageview metrics.
  • Loading any <img> URLs your Markdown source references — rendered images are fetched by your browser directly from the URL you pasted, not proxied through Mungomash.

None of those carry the Markdown text you paste. You can verify by opening your browser's DevTools network tab, typing a document, and confirming no further requests fire (apart from any image URLs you reference). Safe for production data, internal post-mortems, draft READMEs, or anything containing secrets.