Pre-launch version

Lint Markdown

Paste Markdown or drop a .md file to see what's wrong with it — broken links, heading jumps, bad list nesting, stray whitespace — each with its line number.
Your file never leaves your device.

How do you want to add your Markdown?

Paste or upload Markdown to see issues.

About Lint Markdown

What it checks

Broken inline links (a destination that is never closed, or an empty one), links with no visible text, code fences that are opened and never closed, and table rows whose cell count doesn't match the header — these are reported as errors. Heading problems (a level that skips from h1 to h3, a second H1, a missing space after the #), list problems (mixed bullet markers, non-sequential numbering, an indent that jumps more than one level), and whitespace problems (trailing spaces, hard tabs, runs of blank lines, a missing final newline) are reported as warnings. Every issue carries the line number it occurs on.

Why it reports instead of fixing

Because the most useful findings are the ones no tool can safely fix. A link written as [text]( is detectably broken, but nothing can guess the URL you meant. A heading that jumps from h2 to h4 might be a mistake or might be deliberate. Silently rewriting either one would corrupt your document while hiding the problem. So this tool tells you where and what, and leaves the judgement to you — and for the issues that are mechanical, it says so and points you at Format Markdown, which applies them.

Code and front matter are respected

Fenced and indented code blocks are skipped by the style rules, so a bullet or heading inside an example is never flagged. Inline code spans are stripped before the link checks, so writing [text]( inside backticks as an example doesn't produce a false positive. YAML front matter is skipped as well — but it still counts toward line numbers, so what the tool reports matches what your editor shows.

Lint without uploading — your file never leaves your device

This tool runs entirely in your browser using JavaScript. Your Markdown is never uploaded to a server, never stored, and never leaves your device — so drafts, notes, and documents stay private while you check them.

Frequently asked questions

Does this fix the issues it finds?
No — it reports them, with line numbers, so you can decide what to do. Issues marked auto-fixable are handled by Format Markdown, our sibling tool; issues marked as needing your call (like a broken link) can't be fixed by any tool without guessing at your intent.
Why is a broken link an error but a heading jump only a warning?
Errors are things that render wrongly or lose information — a link that doesn't work, a fence that swallows the rest of your document. Warnings are style and structure issues that render fine but read inconsistently.
Will it flag examples inside my code blocks?
No. Fenced and indented code blocks are skipped, and inline code spans are removed before the link checks — so documenting broken Markdown inside backticks won't trigger anything.
Do the line numbers match my editor?
Yes. YAML front matter is skipped by the rules but still counted, so the reported line number is the real line number in your file.
Is there a download?
No — this tool shows a report, it doesn't produce a file. The issues update live as you edit. To get a cleaned-up file, use Format Markdown.
Does this upload my file?
No. Linting runs entirely in your browser with JavaScript — your Markdown is never sent to a server and never leaves your device.

More Markdown tools, coming soon

Markdown to PDF, table of contents, front matter editing, and more — all free and all in your browser.

Back to all tools →