Markdown formatter
Paste messy Markdown and get consistent Markdown back — same rendered output, tidier source. It runs in this tab, so nothing is uploaded.
Formatted in this tab. Your document is never uploaded.
What it changes
- One bullet marker throughout, instead of a mix of
-,*and+ - Ordered lists renumbered in sequence, so 1/7/9 becomes 1/2/3
- Underlined (Setext) headings converted to
#headings - Exactly one space after a heading's hashes, and a blank line either side
- Runs of blank lines collapsed to one; none at the start or end
- Trailing whitespace removed — except the two spaces that mean a line break
What it never changes
It does not rewrap paragraphs, reorder anything, or touch the inside of a code block or YAML front matter. Every rule is chosen so that the rendered output is byte-identical before and after; only the source changes.
Common questions
- What does the formatter change?
- Presentation of the source, never meaning. It makes bullet and emphasis markers consistent, renumbers ordered lists, converts underlined headings to hash headings, collapses runs of blank lines and strips stray trailing whitespace.
- Will it change how my document renders?
- No. Every rule is chosen so the rendered output is identical before and after — only the source text is tidier. That is why it will not rewrap paragraphs or reorder anything.
- Does it touch code blocks?
- No. Fenced code, indented code and YAML front matter are copied through untouched, because reformatting the inside of a code sample would change the thing you were quoting.
- What happens to my hard line breaks?
- Two trailing spaces are a deliberate line break, so they are preserved exactly. Any other trailing whitespace is removed, since it is invisible and does nothing.
- Is my document uploaded?
- No. Formatting is plain text work done by JavaScript in this tab. Nothing is sent anywhere, which is why it still works with the network disconnected.
- How is this different from Prettier?
- Prettier reflows paragraphs to a print width and is designed to run in a build. This is a smaller, safer set of rules aimed at markdown you are about to paste somewhere, and it never rewraps your prose.