Markdown Linter and Validator
Free markdown linter and validator. Check markdown syntax against markdownlint rules, see problems inline and fix them with one click. No signup.
Loading markdownlint…
What Is a Markdown Linter?
A markdown linter is a tool that checks a markdown file against a set of style and structure rules and reports each violation with its line number, so problems that would render badly or look inconsistent are caught before publishing. This page runs markdownlint, the most widely used rule set, directly in your browser and can apply its automatic fixes.
Use it as a markdown validator for READMEs, wikis and documentation sites that enforce markdown lint in CI: paste the file, fix what it flags, and the pipeline passes on the first push.
How to Lint Markdown Online
- Paste your markdown into the input pane or open a .md file. Problems appear below within a moment.
- Adjust the rules in the toolbar: line length, inline HTML, first-line heading and list marker style.
- Read the Problems table. Click a rule id such as MD022 to open its documentation.
- Click Fix automatically. The corrected markdown appears in the output pane with a count of what changed.
- Fix the remaining “manual” items in the input, or click Use as input to keep linting the fixed version.
- Copy or download the result.
Rules the Markdown Checker Fixes Automatically
| Rule | Problem | Fix applied |
|---|---|---|
| MD004 | Inconsistent list markers (-, *, +) | Rewrites markers to the chosen style |
| MD009 | Trailing spaces | Removes them (two-space line breaks are allowed) |
| MD010 | Hard tabs | Replaces tabs with spaces |
| MD012 | Multiple consecutive blank lines | Collapses to one |
| MD022 | Heading not surrounded by blank lines | Inserts the blank lines |
| MD032 | List not surrounded by blank lines | Inserts the blank lines |
| MD047 | File does not end with a newline | Adds one |
| MD041 | First line is not a top-level heading | Manual |
| MD033 | Inline HTML | Manual (off by default) |
Configuring the Rules
The toolbar covers the four settings projects change most often. Check line length enables MD013 with the limit you enter. Allow inline HTML turns MD033 off, which suits GitHub READMEs that centre images with a div. Require a top-level heading first enables MD041, common in documentation generators. List style sets MD004 to dash, asterisk, plus or simply consistent. Every other rule stays at its markdownlint default, which matches a project with no .markdownlint.json file.
Why Run a Markdown Linter
Rendering differences between GitHub, GitLab, static site generators and editors almost always trace back to the problems a markdown linter flags: a list glued to a paragraph, a heading with no blank line above it, a tab where four spaces were expected. Linting takes seconds and the automatic fixes handle the tedious part. If you also need to compare two versions of a document, the text compare tool below shows a line-by-line diff.
Frequently Asked Questions
Which rules does the markdown linter check?
The markdown linter runs the full markdownlint rule set, the same rules used by the markdownlint CLI and the VS Code extension: heading levels and spacing, list markers and indentation, trailing spaces, hard tabs, blank lines, code fence style, link and image syntax and more. Every rule id in the results links to its official documentation.
What does Fix automatically change?
It applies the fix information that markdownlint itself produces, so it only touches problems with a known safe fix: trailing spaces, tabs, extra blank lines, missing blank lines around headings and lists, list marker style and the final newline. Problems such as a missing top-level heading or a duplicated heading are listed as manual.
Can I run markdownlint online without installing Node?
Yes. This page bundles the markdownlint library and runs it in your browser, so there is nothing to install and nothing is uploaded. It is the quickest way to check a README or a documentation page before opening a pull request.
Why is line length off by default?
Many projects wrap prose at 80 or 120 characters but many others do not wrap at all, and MD013 would flag every paragraph in an unwrapped file. Tick Check line length and set your project's limit to enable it; code blocks and tables are exempt.
Is a markdown validator the same as a markdown checker?
In practice yes. Markdown has no formal validity in the way XML does, so a markdown validator or markdown checker verifies style and structure rules that catch rendering surprises, such as a heading with no blank line before it or a list that runs into the previous paragraph.