Live Markdown editor with split preview, word count, and raw HTML export
Preview will appear here…
As-is, no warranty. These apps are free under their listed license and run entirely in your browser. Use at your own risk — don't blame me if your PC catches fire, your dog runs away, or the math turns out wrong. Verify anything that actually matters. None of this is professional financial, medical, legal, or engineering advice.
The Markdown Visualizer is a split-pane editor that renders your Markdown to HTML in real time. Left pane is raw text; right pane is the rendered output, updating on every keystroke. The parser is a zero-dependency micro-implementation written in ~100 lines of TypeScript - no network requests, no markdown-it, no remark, no dependencies at all.
It’s aimed at developers and writers who work in plain Markdown and want to verify their formatting quickly - without spinning up a local dev server, installing a VS Code extension, or opening GitHub’s preview tab. The shareable URL feature lets you share a draft document as a single link with no backend involved.
.md file.The parser is a line-by-line and inline-pass regex transformer, not a proper AST parser. It processes the input in two stages:
Block-level pass - each line is matched against block patterns in priority order: fenced code blocks, headings (# through ######), blockquotes, ordered and unordered lists, horizontal rules, and pipe tables. Matching lines are wrapped in the appropriate HTML element.
Inline pass - within each text block, a series of regex substitutions handles bold-italic, bold, italic, strikethrough, inline code, images, and links. The order matters: bold-italic (***) must be matched before bold (**) to avoid greedy match errors.
The shareable URL uses btoa(encodeURIComponent(markdown)) to produce a URL-safe base64 string stored in the hash. On load, decodeURIComponent(atob(hash)) restores it. This is purely client-side - nothing hits a server.
Seeing rendered Markdown during authoring catches problems that are invisible in raw text. The most common: forgetting to close a code fence (everything after it renders as code), pipe table column misalignment (the table silently breaks), and link syntax mistakes ([text](url vs [text](url)).
The GFM vs CommonMark distinction matters more than most people realize. GitHub Flavored Markdown (GFM) supports pipe tables, strikethrough, and task lists - CommonMark does not. Many documentation platforms (Docusaurus, MkDocs, Hugo) use a specific Markdown dialect, and a table that renders perfectly in GitHub will break in CommonMark-strict mode if you have unescaped pipes in cells. This tool implements GFM-style tables so you can verify table syntax before committing.
For documentation pipelines and static site generators, this is also useful for one-off conversion checks: paste a chunk of docs, verify it looks right, copy the HTML for a CMS field, or confirm heading hierarchy before publishing.
|---|---|) with at least one dash per cell. Missing separators silently render the table as plain text.<div> tags won’t break the preview output.# through ######[label](url) and ```lang ``` (language class preserved for downstream highlighters)>---> blocks are not merged.For informational purposes only. Not financial, medical, or legal advice. You are solely responsible for how you use these tools.