LinkedIn line break & spacing fixer
Wrote your post in Google Docs or Word and the spacing broke on paste? Drop it here: hidden characters stripped, blank lines collapsed, bullets normalized — LinkedIn-ready in one paste. Runs entirely in your browser; nothing is uploaded.
● free · no login · runs in your browser
How to use it
- Paste your draft from Google Docs, Word, Notion or anywhere else. Nothing you paste leaves your browser.
- Pick your options: keep bullets as •, convert them to →, or strip them — and tick breathing room if your paragraphs are jammed together. The clean version updates live.
- Check the stats (they tell you how much hidden junk was in there), then copy the clean version into LinkedIn.
Why pasting from Docs breaks LinkedIn spacing
Word processors and LinkedIn's post composer speak different dialects of "text". A Google Docs or Word draft carries things the composer can't display: rich formatting (which gets stripped, taking some line structure with it), Windows-style CRLF line endings, non-breaking spaces where you typed regular ones, and — worst of all — zero-width characters like U+200B that take no visible space but are real characters. They ride along invisibly in the copy-paste, then surface as jammed paragraphs, mystery gaps, lines that wrap in strange places, and characters counted against your 3,000 limit that you can't see to delete.
The fix is mechanical, which is why a page of plain JavaScript can do it: normalize line endings, delete the invisible characters, convert exotic spaces back to regular ones, trim trailing whitespace, and collapse any pileup of blank lines down to exactly one. That last one matters — one blank line between paragraphs is the LinkedIn convention; three look broken and burn the space above the "see more" fold.
Whitespace is a formatting tool — arguably LinkedIn's best one
Posts are plain text: no headings, no real bold (only the Unicode workaround, which has costs). That leaves whitespace as your main layout instrument, and the writers who do well in the feed use it deliberately.
The pattern that works: 1–2 sentence paragraphs, one blank line between them. The feed is read on phones, mid-scroll, in seconds — a paragraph that looks reasonable in a document becomes a dense block at phone width, and dense blocks get scrolled past unread. Short paragraphs let a skimmer catch the argument, and a skimmer who catches the argument is a reader who clicks "see more". That's also the "breathing room" checkbox above: it turns single line breaks into proper paragraph breaks.
One more consideration: the fold. Only roughly the first 210 characters show before …see more on desktop — around 140 on mobile — and blank lines spend that budget too. Keep your opening tight; check where you stand with the character counter, or see the truncation exactly as readers will in the post preview.
Cleaning up drafts with Claude Code or another agent? Install the skill version — it runs the same normalization pipeline (invisible characters, line endings, blank-line collapse, bullet markers) from the terminal:
npx skills add liftli-ai/skills --skill linkedin-line-break-fixer
Part of the liftli-ai/skills collection — browse all 28 skills, one per tool on this site. For the full pipeline (voice extraction, strategy memory, publishing), connect the Liftli MCP.