Skip to content

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#Title becomes # 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

  1. Open the editor.
  2. Paste your Markdown.
  3. 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:

RuleSeverityDescription
heading-spacewarningMissing space after #
heading-incrementwarningHeading jumps more than one level
consistent-bulletsinfoUse - for unordered list items
no-trailing-whitespaceinfoTrailing whitespace on a line
no-multiple-blanksinfoMore 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

Will the formatter change my code blocks?
No. Anything inside fenced code blocks is left untouched. The formatter only normalizes prose-level formatting.
Does it follow markdownlint conventions?
The formatter follows a sensible subset of markdownlint defaults — particularly the rules that have clean automatic fixes.
Can I disable certain rules?
Not yet — the formatter is intentionally minimal. If you need rule-level control, run our output through a dedicated linter like markdownlint-cli2.
Will my links and images change?
No. Link and image URLs are preserved exactly. The link checker in the sidebar can validate them on demand.