No input yet.
Markdown beautifier with a rendering check
This Markdown formatter rewrites a document in one consistent style – bullets, headings, numbered lists, indentation, tables and blank lines – and then checks that the rendered HTML did not change. Paste Markdown and download the tidy version.
Last updated:
How it works
Paste the Markdown
Paste text, open an .md file or load one from a URL. The sample is a deliberately messy changelog.
Pick the style
Choose the bullet character, numbering, emphasis markers, code fences and line-break style. Every option can also keep the original.
Review and download
Compare the formatted text, see what changed in the Changes tab and the result of the rendering check, then copy or download.
Features
Proof that nothing was lost
The input and the output are rendered with a CommonMark parser and the HTML is compared. A green check means only the source formatting changed.
Lists done right
One bullet character, renumbered ordered lists and nested items indented under their parent text. A list that starts with a different marker stays a separate list.
Tables aligned
Pipes line up, cells are padded and the alignment row keeps :--, :-: and --: as they were.
Headings and rules
Underlined headings become # headings, closing hashes and extra spaces go, and *** or ___ rules become ---.
Code untouched
Fenced and indented code blocks, HTML blocks and front matter are copied as they are.
Same result every time
Formatting is deterministic and idempotent: running it again on the output changes nothing.
Limits & privacy
Documents up to 5 MB. The formatter and the rendering check run in your browser (large inputs in a background worker); the text is not uploaded or stored. See the privacy page.
FAQ
How do I format a Markdown file?
Paste it or drop the .md file, keep the default style and download the result. The Changes tab counts what was rewritten.
Will formatting change how my README looks?
No. The rendering check compares the HTML before and after. Only spacing, markers and alignment in the source change.
Why is "#Title" not turned into a heading?
Without a space after #, CommonMark and GitHub show it as text. Turning it into a heading would change the document, so it is left alone.
Should I use * or - for bullets?
Both render the same. Dashes are the most common choice in style guides and linters; pick one and keep it consistent.
What does tidy blank lines do?
It collapses runs of empty lines to one and adds a blank line around headings, code blocks and tables, which some renderers need.
Is this the same as Prettier or markdownlint?
It covers the common formatting rules of those tools without installing anything, and adds a visible rendering check. It does not lint wording or links.