Developer · Validator

Markdown linter.

Paste Markdown to check it against eleven markdownlint rules. Every finding shows its rule ID, the line and column, and how to fix it. Copy a cleaned version in one click. Runs in your browser; nothing is sent anywhere.

Advertisement

Input

markdownlint's default is 80 characters.

Result

Paste Markdown and press Lint.

The rules checked

Each rule below is taken from the markdownlint rule documentation (read 30 September 2026); each finding links to that rule's own section. Defaults are the documented ones.

Worked example

The built-in example (press Load example) is 14 lines and produces 16 findings: MD001 (an h3 straight after an h1), MD009 (three trailing spaces), MD010 (a tab), MD012 (two blank lines), MD013 (a 105-character line), MD022 (five missing blank lines around headings), MD024 (a repeated “Fixes” heading), MD031 (two missing blank lines around a fence), MD032 (a list that touches the paragraph above), MD034 (a bare URL) and MD047 (no final newline). The cleaned copy fixes every one of those except MD001, MD013 and MD024, which need a human decision.

What “cleaned” changes, and what it does not

The cleaned copy only applies mechanical fixes: it removes trailing whitespace (keeping a two-space hard break), turns tabs outside code into four spaces (that width is this tool's choice, not markdownlint's), deletes extra blank lines, inserts the missing blank lines, wraps bare URLs in <> and adds the final newline. It never touches code blocks or front matter, and it never rewrites headings or splits long lines. Read the diff before you commit it.

How this differs from the real markdownlint

This page is a small line-based re-implementation of eleven rules, not the markdownlint library. It does not parse the full CommonMark syntax tree, so edge cases can differ: indented code blocks are not detected, block quotes and HTML blocks are treated as plain text lines, headings inside block quotes are not seen, a whitespace-only line is always reported by MD009, and bare email addresses and www. links are not reported by MD034. For a definitive result run markdownlint itself, or its CLI, in your project. Rules not listed here (for example MD003, MD004, MD040 or MD041) are not checked.

Sources: markdownlint rules (github.com/DavidAnson/markdownlint, doc/Rules.md), as read 30 September 2026; CommonMark specification (spec.commonmark.org) for fences, lists and lazy continuation.

Frequently asked questions

Why is a line over 80 characters not flagged?

MD013 excuses a long line when nothing after the limit is whitespace, so a long URL is not forced to break. Lines holding only a link or image, and link reference definitions, are also excused.

Is two trailing spaces really allowed?

Yes. Two spaces at the end of a line are a Markdown hard line break, so MD009 allows exactly two. One space, or three or more, is reported.

Why is my duplicate heading flagged when the sections differ?

With markdownlint's default (siblings_only off) any repeated heading text is reported, even under different parents. Changelogs that repeat “Fixed” under every version commonly turn that option on.

Does the cleaned copy change my meaning?

It should not: it only adjusts whitespace and wraps bare URLs in angle brackets, which renders the same link. Check the result with a diff anyway, especially if your file mixes tabs and spaces on purpose.

Style check only

This tool reports where Markdown breaks a set of markdownlint style rules. It does not check that links work, that the content is correct, or how any one renderer displays the file, and it is a subset of the real markdownlint. Nothing you type is stored or sent anywhere.

Advertisement
Advertisement
Listening…