Markdown Formatter
Beautify and lint your Markdown in one click
Auto-format messy Markdown. Normalizes whitespace, headings, list bullets, task markers, and trailing spaces — plus a built-in linter that flags common mistakes.
- Beautify with a single click — no config
- Linter flags issues with line numbers and rule names
- Auto-fix common problems with one button
- Conventions match GitHub & markdownlint defaults
Live sample
Before
#Heading without space
- Mixed bullet style
- Another bullet
- Uppercase task marker
Multiple blank lines.
After
Heading without space
-
Mixed bullet style
-
Another bullet
-
Uppercase task marker
Multiple blank lines.
What does the Markdown formatter fix?
The Markdown beautifier is intentionally minimal — every transformation is something most teams agree on:
- Heading spaces —
#Titlebecomes# Title - List bullets —
*and+are normalized to- - Task markers —
[X]becomes[x] - Trailing whitespace — stripped on every line outside code blocks
- Blank line collapse — three or more blank lines collapse to one
- Trailing newline — exactly one at the end of the file
We never touch the contents of fenced code blocks, so your code samples stay exactly as you wrote them.
How to format your Markdown
- Open the editor.
- Paste your Markdown.
- Press Ctrl/⌘ + Shift + F or click Beautify in the Tools sidebar.
Built-in linter
The linter runs on every keystroke and surfaces issues in the Format tab of the sidebar:
| Rule | Severity | Description |
|---|---|---|
| heading-space | warning | Missing space after # |
| heading-increment | warning | Heading jumps more than one level |
| consistent-bullets | info | Use - for unordered list items |
| no-trailing-whitespace | info | Trailing whitespace on a line |
| no-multiple-blanks | info | More than one consecutive blank line |
Click an issue to jump to the offending line, or hit Auto-fix common issues to apply the formatter.
Frequently asked questions
- No. Anything inside fenced code blocks is left untouched. The formatter only normalizes prose-level formatting.
- The formatter follows a sensible subset of markdownlint defaults — particularly the rules that have clean automatic fixes.
- Not yet — the formatter is intentionally minimal. If you need rule-level control, run our output through a dedicated linter like markdownlint-cli2.
- No. Link and image URLs are preserved exactly. The link checker in the sidebar can validate them on demand.