Typography Cleaner
Normalize smart quotes, em dashes, ellipses, and invisible whitespace
Strip curly quotes, em dashes, smart ellipses, non-breaking spaces, and zero-width characters introduced by Word, Google Docs, LLMs, or rich-text editors. Or go the other direction for typography-correct prose. Code blocks are preserved.
9 replacement(s)
Transforms
Fenced code blocks and inline `code` spans are preserved untouched.
How to use the typography cleaner
- Paste Markdown or any plain text — pasted from Word, Notion, Google Docs, an LLM, or anywhere typography may have been auto-corrected.
- Toggle the transforms you want applied. The defaults strip smart quotes, normalize em dashes to
--, ellipses to..., and remove NBSP and zero-width characters. - The output updates in real time. Copy when ready.
What each transform does
| Transform | Example |
|---|---|
| Smart quotes → straight | "Hello" and 'world' → "Hello" and 'world' |
| Straight → smart quotes | "Hello" → "Hello" |
| Em dash → double hyphen | like — this → like -- this |
| Double hyphen → em dash | like -- this → like — this |
| Ellipsis → three dots | wait… → wait... |
| Three dots → ellipsis | wait... → wait… |
| NBSP → regular space | invisible NBSP → regular space |
| Strip zero-width characters | invisible ZWSP / ZWJ / BOM → removed |
Common scenarios
- A teammate pastes Word output into a Markdown PR. Run the cleaner, commit clean ASCII.
- An LLM returns text with curly quotes. Pipe it through the cleaner before storing.
- A search-and-replace mysteriously misses items. Likely a zero-width character; strip it.
- CI flags a string mismatch. Likely NBSP vs space; normalize and re-run.
What it doesn't do
- Spell check. Use a dedicated tool for grammar / spelling.
- Reformat Markdown structure. For that, use the Markdown Formatter.
- Remove emoji. Emoji are intentional — emoji-stripping is out of scope.
Companion tools
- Markdown Formatter — whitespace and structural cleanup.
- Markdown Diff — see exactly what changed after a cleanup pass.
- Markdown Redaction — for sensitive content removal.
Privacy & data
The cleaner is a small client-side script. Your text never leaves the browser.
Frequently asked questions
- Word, Google Docs, and macOS auto-replace straight `"` and `'` with curly equivalents. Those curly characters are different Unicode code points, which means search-and-replace, code compilers, JSON parsers, and shell commands often fail when curly quotes sneak into source. Normalizing to straight ASCII once removes the entire class of bug.
- Toggle the reverse transform on (Straight → smart quotes). The tool will replace ASCII quotes with typographically correct curly versions. Heuristics decide opening vs closing based on whitespace context — they get the common cases right and may need manual touch-up around contractions.
- No. Fenced code blocks and inline backtick spans are stashed before transformation and restored afterwards. Smart quotes pasted into a code sample stay exactly as they were.
- Pasted text from rich-text editors and certain web sources often includes zero-width spaces, joiners, and BOM markers. They're invisible but they break filename comparisons, search-and-replace, and serialization. The 'strip zero-width' transform removes them all.
- No. The transforms are tiny client-side string replacements. Nothing leaves the browser tab.
- Different publishing pipelines have opposite preferences. ASCII purists (engineering docs, READMEs) want `--` and `...`. Typography-conscious publishers (long-form blogs, books) want `—` and `…`. Pick the direction you need.