How to quick markdown formatting without a local prettier install
- Step 1Reach for this when Prettier isn't handy — Use it for ad-hoc cleanup on a non-Node machine or a quick paste. If your repo enforces Prettier in CI, run Prettier locally instead for the exact match.
- Step 2Open the prettifier — Go to /markdown-tools/md-prettifier. It runs in the browser — nothing to install.
- Step 3Paste or drop the Markdown — Paste the snippet or drop one
.mdfile (free tier: 1 MB / 500,000 characters). - Step 4Pick a wrap width to mirror printWidth — Set the Wrap width dropdown to
80,100, or120 colsto approximate Prettier'sprintWidth, orNo wrapto leave long lines. - Step 5Run the spacing pass — Click Run. Heading spacing, trailing whitespace, and blank-line runs are normalised in one pass.
- Step 6Use the output, or finish in Prettier — Paste the result where you need it. For byte-exact Prettier output (list/emphasis/table normalisation, prose reflow), run Prettier locally as a final step.
This tool vs. a real Prettier run
An honest comparison. This is a spacing pass, not a Prettier reimplementation. Prettier behaviour described as of its documented Markdown formatter.
| Formatting concern | This prettifier | Prettier (run locally) |
|---|---|---|
| Blank lines around headings | Yes — one before and after each ATX heading | Yes |
| Trailing whitespace | Trimmed on prose lines (code fences excluded) | Trimmed |
| Multiple blank lines | Collapsed to one | Collapsed to one |
| Prose line wrapping | Optional hard-wrap at 80/100/120 (splits long lines only) | proseWrap setting; can reflow (re-join + wrap) at printWidth |
| List markers / indentation | Left as written (not normalised) | Normalised (consistent marker + indent) |
| Emphasis markers (* vs _) | Left as written | Normalised |
| Tables | Skipped (not reformatted) | Aligned/reformatted |
Wrap width mapped to Prettier printWidth
Pick the dropdown value closest to your team's printWidth. Note: this wrap only splits long lines; Prettier's proseWrap can also re-join short lines.
| Dropdown choice | wrapWidth | Comparable printWidth | Difference from Prettier |
|---|---|---|---|
| No wrap (default) | 0 | proseWrap: preserve | No change to line breaks at all |
| 80 cols | 80 | printWidth: 80 | Splits long lines; does not re-join short ones |
| 100 cols | 100 | printWidth: 100 | Same: split-only, no reflow |
| 120 cols | 120 | printWidth: 120 | Same: split-only, no reflow |
Cookbook
Examples that show where this tool matches Prettier on spacing and where you'd still need the real thing.
Heading spacing — matches Prettier
Adding a blank line before and after headings is one place this tool and Prettier agree.
Before: Intro. ## Install Run npm i. After (this tool and Prettier both): Intro. ## Install Run npm i.
Trailing whitespace trimmed — matches Prettier
Both trim trailing whitespace on prose lines. (Trailing spaces shown as ·.)
Before: Ready to go.·· Ship it.··· After: Ready to go. Ship it.
Wrap at 80 — split-only, unlike Prettier's reflow
This tool splits a long line at the width but does not re-join already-short lines into a paragraph first. Prettier's proseWrap can reflow the whole paragraph. Know the difference.
Wrap width: 80 cols Before (already split into short lines): This paragraph was hand-split into short lines that together describe the build step in detail. This tool's output (each line wrapped independently; short lines kept): This paragraph was hand-split into short lines that together describe the build step in detail. Prettier with proseWrap: always would re-join then wrap to 80.
Lists — Prettier normalises, this tool doesn't
Prettier rewrites list markers and indentation to a consistent style. This tool leaves them as written — use the list fixer if you need that.
Input: * item one - item two + item three This tool's output (markers/indent unchanged): * item one - item two + item three For consistent markers, use /markdown-tools/md-list-fixer.
Tables — Prettier aligns, this tool skips
Prettier pads table cells to align pipes. This tool skips table rows entirely. Use table repair for alignment.
Input: | Name | Role | |---|---| | Ada | Eng | | Grace | Lead | This tool's output: identical (rows skipped). For alignment, use /markdown-tools/md-table-repair.
Edge cases and what actually happens
Output won't match Prettier byte-for-byte
By designThis is a focused spacing pass, not a Prettier reimplementation. It skips list/emphasis/table normalisation and prose reflow, so its output can differ from prettier --write. For an exact match in a Prettier-enforced repo, run Prettier locally.
Prettier's proseWrap reflow vs. this tool's split-only wrap
Different behaviourThis tool only splits lines longer than the width; it never re-joins short lines into a paragraph first. Prettier's proseWrap: always re-joins then wraps. If you depend on full reflow, use Prettier.
List markers left unnormalised
Out of scopeUnlike Prettier, this tool doesn't standardise */-/+ markers or list indentation. Use the list fixer for consistent lists.
Emphasis markers left unnormalised
Out of scopePrettier standardises emphasis (e.g. _ for italic, ** for bold). This tool leaves */_ exactly as written. Use the bold/italic cleaner to standardise them.
Tables not aligned
Out of scopePrettier pads table cells; this tool skips table rows. For aligned or repaired tables, use table repair.
Prettier plugins / proseWrap config not supported
Not supportedThere's no plugin system and no printWidth/proseWrap config object — only a Wrap width dropdown (No wrap / 80 / 100 / 120). Plugin-driven formatting requires a local Prettier install.
Two-space hard breaks removed
RemovedTrailing-whitespace trimming removes CommonMark two-space hard breaks. Prettier also handles hard breaks (often preferring a backslash). Use \ for breaks that survive either tool.
Frontmatter preserved (as Prettier does)
PreservedYAML/TOML frontmatter is split off and re-attached unchanged here. Prettier likewise leaves frontmatter content alone, so both are safe on docs-as-code pages.
Snippet exceeds free-tier cap
413 / blocked on freeFree is 1 MB / 500,000 characters per file. Most ad-hoc snippets are tiny, but a large pasted doc may need Pro (10 MB / 5,000,000 chars). The character cap is separate from byte size.
GFM-specific syntax in the snippet
Preserved (not transformed)Task lists, strikethrough, autolinks, and other GFM constructs are treated as prose/content and preserved as-is — they're not converted. To convert GFM to CommonMark, use the GFM-to-CommonMark tool.
Frequently asked questions
Is this exactly equivalent to Prettier?
No. It's a focused spacing pass (heading blank lines, trailing-whitespace trim, blank-line collapse, optional wrap). It does not normalise lists/emphasis/tables or reflow prose like Prettier, so output can differ. For exact Prettier output, run Prettier locally.
When should I use this instead of Prettier?
For ad-hoc cleanup when Prettier isn't handy — a non-Node machine, a quick chat paste, or a doc you don't want to add to a repo just to format. If CI enforces Prettier, run Prettier locally for the match.
Does it match Prettier's printWidth wrapping?
Partly. The Wrap width dropdown (80/100/120) approximates printWidth, but it only splits long lines — it doesn't re-join short lines the way Prettier's proseWrap: always does.
Does it normalise list markers like Prettier?
No. List markers and indentation are left as written. Use the list fixer for consistent list formatting.
Does it standardise emphasis markers?
No. * vs _ and ** vs __ are preserved. Use the bold/italic cleaner to standardise them.
Will it align my tables like Prettier?
No — table rows are skipped. Use table repair to align or fix tables.
Does it support Prettier plugins or a config file?
No. There's no plugin system and no config object — just the Wrap width dropdown (No wrap / 80 / 100 / 120). Plugin-driven or config-driven formatting needs a local Prettier install.
Do I still need Prettier locally if my team uses it in CI?
Yes, for the exact match. Run Prettier locally so your output passes CI. This tool is best for ad-hoc or non-Node situations.
Is my content safe during the pass?
Yes. Words, links, emphasis, lists, and fenced code blocks are byte-identical after a run. Only spacing changes — it won't corrupt a snippet.
Does it upload my snippet anywhere?
No. It runs in the browser; nothing is uploaded. Only an anonymous processed-file counter is recorded for signed-in stats, which you can opt out of.
How large a file can I format for free?
Up to 1 MB or 500,000 characters per file. Larger files need Pro (10 MB / 5,000,000 chars), Pro-media (50 MB / 20,000,000), or Developer (500 MB / unlimited).
Can I automate this like a Prettier pre-commit hook?
The web tool is interactive. For automation, the tool's GET endpoint exposes its schema, and execution is runner-backed via @jadapps/runner, which runs the transform in-process locally. For a true Prettier hook, configure Prettier in your repo.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.