Markdown Linter
Check Markdown formatting: trailing spaces, heading hierarchy, duplicate headings, bare URLs, list markers, code fence language tags, and more.
24 lines
Bare URL — use [text](url) or <url>
Ordered list marker must be followed by a space
Fenced code block has no language specified
Fenced code block has no language specified
Duplicate heading: "Installation"
Emphasis used as heading — use # instead
List marker must be followed by a space
What Is the Markdown Linter?
The Markdown Linter analyzes Markdown text and reports formatting and structural issues with precise line and column numbers. It checks 10 configurable rules covering trailing spaces, heading hierarchy, duplicate headings, bare URLs, list marker formatting, fenced code block language tags, line length, and emphasis misused as headings.
This tool is useful for technical writers, developers writing READMEs, and documentation teams who want to enforce consistent Markdown style before publishing or committing files.
How to Use the Markdown Linter
- Paste your Markdown into the left panel, or click Load Sample to see an example with several issues.
- Issues appear in real time in the right panel, grouped with error, warning, and info severity badges.
- Each issue shows the line number, column, rule ID, and description.
- Click Configure Rules to toggle individual rules on or off.
- Fix your Markdown in the input panel — the issue list updates as you type.
Features
- 10 lint rules — all configurable via the rules panel
- Three severity levels: error, warning, and info
- Real-time linting — issues update as you type
- Precise line and column location for every issue
- Issue count summary with color-coded badges
- Rules: no-trailing-spaces, no-multiple-blanks, heading-increment, first-heading-h1, no-bare-urls, list-marker-space, fenced-code-lang, no-duplicate-headings, line-length, no-emphasis-as-heading
FAQ
What does a Markdown linter check?
A Markdown linter checks for formatting and structural issues such as trailing whitespace, inconsistent heading levels, duplicate headings, bare URLs not wrapped in links, list items missing a space after the marker, fenced code blocks without a language tag, and emphasis used as a heading substitute.
What is heading-increment?
The heading-increment rule flags cases where a heading level is skipped — for example, going from H1 directly to H3 without an H2 in between. Proper heading hierarchy is important for accessibility and screen readers.
Why should fenced code blocks specify a language?
When a fenced code block specifies a language (e.g. ```javascript), editors and renderers apply correct syntax highlighting. Omitting the language produces plain-text blocks with no highlighting in most renderers.
Can I disable specific lint rules?
Yes. Click Configure Rules to open the rules panel and toggle any rule on or off. The line-length rule is disabled by default since it depends on project preferences.