Markdown Syntax Checker
Paste Markdown and get broken links, header issues and malformed lists flagged by exact line number, with a safe live preview. Your text never leaves your browser.
Markdown source
Live preview
Issues found
How the Markdown checker works
This tool reads your Markdown line by line and runs a set of checks modeled on how real Markdown renderers (and the CommonMark spec) actually behave, not just "does this look weird":
[docs](https://example.com ← missing closing ")" ### Getting started ← jumped from H1, skipped H2 - item * item ← marker changed mid-list, no blank line
An unclosed code fence or a truly broken link (a missing closing parenthesis, an empty URL, or a reference link with no matching definition) is flagged as an error — these genuinely break rendering or leave a dead link. A header level jump, an empty header, or an inconsistent list marker is flagged as a warning — the document still renders, but the structure is confusing for readers and screen readers alike. The live preview next to it is built by constructing real DOM elements directly from your Markdown — it never converts your text into an HTML string and injects it, so pasting a raw <script> tag or an <img onerror=...> attribute just shows up as plain text, never as something that runs.
Frequently asked questions
Is it safe to paste sensitive Markdown here?
Yes. All parsing, checking and rendering happens in your browser using native JavaScript; no data is ever sent to a server.
Does the live preview execute raw HTML I paste, like a <script> or <img onerror>?
No. The preview never converts your Markdown into an HTML string and injects it — it builds real DOM elements directly (createElement, textContent). Any raw HTML you paste shows up as plain, inert visible text, never as parsed or executed markup.
What exactly does the checker look for?
Unclosed code fences, header levels that skip a step (like H1 straight to H3), empty headers, links with a missing closing parenthesis or an empty URL, reference-style links with no matching definition, and bullet lists that switch marker character mid-list without a blank line.
Does this support the full CommonMark or GitHub Flavored Markdown spec?
The preview covers the common subset: headers, paragraphs, bold/italic, inline code, fenced code blocks, links, bullet/numbered lists and blockquotes. It doesn't render tables, images or raw HTML passthrough — this tool is focused on catching syntax mistakes, not full spec-compliant rendering.