Markdown Formatter
Beautify and standardize your Markdown files for better readability
Tidy inconsistent Markdown before it goes into a repo
Markdown written by several people, or exported from another tool, tends to drift: some bullets use dashes and others use asterisks, headings lack the space after the hash marks, and stray double spaces creep in. This formatter runs a set of small clean-ups over pasted text so files look consistent and diffs stay quiet.
Formatting steps
- Paste your text into Input Markdown. Sample loads a deliberately messy document; Clear empties the box.
- Choose a List Bullet: dash, asterisk or plus.
- Tick or untick Double break between blocks and Trim trailing spaces. Both are on by default.
- Click Beautify Markdown, then use Copy Result or the .md button, which saves formatted.md.
What the formatter really changes
- A heading such as #Title becomes # Title, so it renders as a heading in strict parsers.
- List lines beginning with *, - or + followed by a space are rewritten to the marker you chose, keeping their original indentation.
- Runs of two or more spaces inside a line collapse to a single space.
- With trailing-space trimming on, spaces at the end of each line are removed.
- With block spacing on, a blank line is inserted between a heading or table row and the neighbouring text, and any run of three or more blank lines is reduced to one blank line.
Common situations
- Normalising a README before opening a pull request.
- Cleaning up notes exported from a wiki or note-taking app.
- Making bullet style consistent across a documentation folder.
- Fixing generated Markdown from an AI or scraper that skipped blank lines.
Limitations you should know
The Header Style menu offers ATX and Setext, but the formatting routine does not read it, so headings stay in hash style either way. Every line is trimmed on both sides, which means indented code blocks and nested paragraph content lose their leading spaces, while list lines keep theirs. Runs of spaces are collapsed everywhere, including inside fenced code and table cells, so check code samples afterwards. A list marker with no space after it, like -Item, is not recognised as a list. Trailing double spaces used for hard line breaks are removed when trimming is on. Review the output before replacing the original. Processing runs in your browser.
Related Tools