thoughtasylumTOOLBOX Preview Guides Use offline Automate Feedback

Tools › Text

Markdown Format

Tidy Markdown and check it for problems as you type. Headings, blank lines, bullets, italic and bold markers and tables are made consistent without changing how it renders, broken links and other mistakes are listed by line, and a table of contents is made from the headings.

About this tool What it's for, how to use it and an example

What it's for

Tidy a Markdown file and catch the mistakes that only show once it’s published. The tidying changes how the text looks, not how it renders. The checks find links that go nowhere, headings that skip a level, code blocks that are never closed and similar slips.

  • When you’re about to commit a README and want it consistent: one bullet marker, # headings, blank lines in the right places and tables lined up.
  • When you’re checking someone else’s document for links to headings that were renamed or removed.
  • When you need a table of contents for a long document, with links that match the anchors GitHub makes.

How to use it

Paste or type Markdown, or choose a file (you can also drop one on the page). It’s checked and formatted as you type.

  • Each problem is listed under the text, with a button that goes to it, and underlined in the text. Errors are things that won’t render as you meant them; warnings are style. Those marked “fixed below” are already put right in Formatted.
  • Bullets picks the marker every bullet list uses, or Keep as they are leaves them and only warns when they’re mixed.
  • Contents picks which heading levels go in the Table of contents. Levels 2–3 leaves out a level 1 title. Put <!-- toc --> on a line of its own and the formatted text gets the contents there, followed by <!-- tocstop -->, so formatting it again updates it in place.
  • Italic and Bold make every italic *text* or _text_, and every bold **text** or __text__, or leave them as they are. Only markers with a space or punctuation on each side change, as an underscore inside a word (snake_case) isn’t emphasis; code and link addresses are left alone.
  • The settings are remembered in this browser. Copy the result from Formatted.

Example

Paste this:

Notes
=====
* Fast
+ Free
## Usage ##
See [install](#install).

Six problems are listed. Five are fixed: the underlined heading, the mixed * and + markers, and the missing blank lines around the headings. The error No heading has the link #install, so it goes nowhere is left for you, since there’s no Install heading. Formatted shows:

# Notes

- Fast
- Free

## Usage

See [install](#install).

Good to know

  • Formatting never rewraps lines or changes emphasis, numbering or the text itself. Front matter and fenced code blocks are left exactly as they are.
  • A table row with more cells than its header gets new, empty header cells, so the extra cells, which Markdown would hide, show up.
  • Anchors follow GitHub’s rules: lower case, punctuation dropped, spaces as hyphens, and -1, -2 added to repeated headings. Other sites make anchors differently. id and name attributes in HTML count as anchors too.
  • It reads the text a line at a time. Indented code blocks (four spaces) and HTML blocks are treated as ordinary text, so a bullet marker inside an indented code block is changed too.

Guide: Documenting a project's files, tables and links

    Put <!-- toc --> on a line of its own and the formatted text gets the table of contents there, ending at <!-- tocstop -->.

    Private: this tool runs in your browser. Nothing you type, paste or choose leaves this page.

    Saved you a few minutes? Say thanks with a coffee.

    Something wrong with this tool, or missing from it? Report a bug or suggest a feature.

    ↑ ↓ move↵ openesc close