Markdown formatter
The checker beside this one explains what will render wrong. This one silently fixes what is merely untidy, and it is deliberately conservative: it never changes what a document means.
# A messy document - one - two - three | a | longer header | | --- | ------------- | | 1 | 2 | Some text with trailing spaces.
How it works
- Blocks get exactly one blank line between them, headings lose their closing hashes, and horizontal rules settle on three dashes.
- Bullets settle on one marker and ordered items on `1.` rather than `1)`.
- Tables are padded so the columns line up in the source, which changes nothing about how they render and everything about reading the raw file.
- Trailing spaces go, except the two or more that mean a hard line break, which are squared up to two.
- Code blocks and front matter are left exactly as they are. A formatter that edits your code is not a markdown formatter.
Questions
How is this different from Prettier?
Prettier reflows prose to a line width, which changes every line of a document and makes the next diff unreadable. This leaves your sentences where you put them and only touches the markup around them.
Will it change what my document says?
No. Every rule is something a person would do by hand and nobody enjoys doing. Running it twice gives the same result as running it once, which is the test a formatter has to pass.
Why leave the code alone?
Because inside a fence it is not markdown. Blank lines, indentation and trailing spaces all mean something in code, and a markdown formatter has no business deciding what.
The same tools, without a tab open
Not released yetEverything on this page runs in the app too, on the files already on your device: the same generators, the same checker, the same converters, offline. Which matters most when the document you are working on is not one you would put in a browser.
For iPhone, iPad and Mac. It is not in the App Store, so there is nothing to download from this page yet.Digital Sandbox, who are building it →