Prepare Markdown for a LinkedIn post
The LinkedIn standard post composer is a plain-text box with attachments, not a formatting surface. In a live test on 2026-08-24 every Markdown marker stayed literal, and a Markdown link produced no preview card while a bare URL did. The limit behaved exactly like UTF-16 code units: 3,000 was accepted and 3,001 was refused, one emoji consumed two units, and one CJK character consumed one.
Handoff mode: Plain text. Tested in LinkedIn desktop web Create post composer. Tested 2026-08-24.Fixture markdown-portability-test-v1.See the record.
Prepare your draft
Your Markdown
Your draft stays in this browser. Nothing is uploaded.
Source context (optional)
Relative links and local files stay unresolved until you confirm where they point. Each unresolved target gets its own manual step rather than a guess.
How the Plain text handoff works
This is the opposite of X in one important way. X charges a flat 23 for any URL; LinkedIn charges the full length, so a 114-character link really does consume 114 of your 3,000. When a draft goes over, nothing is cut and nothing is condensed: the whole text stays available, the status becomes action required, and the decision about what to remove stays yours.
What happens to each construct
| Rule | What happens | Result | Why | Confidence | Last tested |
|---|---|---|---|---|---|
LI-SPECIAL-01 | Footnotes, math, Mermaid, Obsidian syntax, raw HTML, and heading anchors are not live-verified on LinkedIn. | Unknown | The focused standard-post test did not isolate these constructs, so no reliable claim exists yet. | Unknown | 2026-08-24 |
LI-TABLE-02 | A wide table needs a summary and an attachment. | Manual step | Flattening a wide table silently would lose the relationships between cells. | Verified | 2026-08-24 |
LI-IMAGE-01 | Images do not transfer through a text paste. | Manual step | Markdown image syntax stayed literal and nothing was uploaded in the tested composer. | Verified | 2026-08-24 |
CORE-LINK-01 | A link with an unsafe scheme was removed; its text was kept. | Degraded | Only http, https, and mailto targets are carried. A javascript:, data:, or protocol-relative target is never copied into a destination editor. | Verified | 2026-08-24 |
LI-EMPH-01 | Bold, italic, and strike are removed. | Degraded | The composer exposes no formatting controls. Unicode look-alike fonts stay off by default because they break screen readers and search. | Verified | 2026-08-24 |
LI-CODE-01 | Code loses its formatting and gets a Code: label. | Degraded | Backticks stayed literal and there is no code control. | Verified | 2026-08-24 |
LI-TABLE-01 | Small tables become compact labeled rows. | Degraded | All pipes and separator characters stayed visible in the tested composer. | Verified | 2026-08-24 |
LI-HEAD-01 | Heading markers are removed; the first line becomes the opening. | Changed | A feed post is not a document. A deep heading hierarchy reads poorly here. | Verified | 2026-08-24 |
LI-LIST-01 | Lists become bullet or numbered lines; task state becomes words. | Changed | Markdown list markers stayed as ordinary characters in the tested composer. | Verified | 2026-08-24 |
LI-LINK-01 | Links become label: URL and count their full length. | Changed | Markdown link syntax stayed literal and made no preview; a bare URL did. LinkedIn counts the whole URL. | Verified | 2026-08-24 |
LI-QUOTE-01 | Quotes get a Quote: label. | Changed | Markdown quote markers stayed literal in the tested composer. | Verified | 2026-08-24 |
LI-LIMIT-01 | The post is counted in UTF-16 code units against a 3,000 limit. | Changed | Verified against the live composer, including emoji surrogate pairs and full URL length. | Verified | 2026-08-24 |
LI-PARA-01 | Paragraph spacing and hard breaks are preserved. | Kept | The tested clean output kept its intended spacing. | Verified | 2026-08-24 |
Where LinkedIn usually goes wrong
A document does not read as a feed post
A deep heading hierarchy makes sense in an article and poor sense in a feed. The opening line carries the weight here, so the first line gets flagged for you to check rather than being silently rearranged.
Markdown links kill the preview
Bracket and parenthesis syntax stayed literal and produced no card. A bare URL generated a normal preview after a short delay, so links are emitted with the destination visible.
Tables and images become attachments
All pipes stayed visible as text and image syntax never uploaded anything. Small tables become compact labeled rows; wide tables and images become an attachment checklist with the alt text kept.
Several constructs have no evidence yet
Footnotes, math, Mermaid, Obsidian syntax, raw HTML, and heading anchors were not isolated during the focused test. They are reported as unknown rather than guessed at, which is why a draft containing them will not claim to be ready.
Evidence from the test

Limits of what was tested
- The separate Article editor was visible and documented but not tested.
- Specialized Markdown constructs were not isolated during the standard-post test.
- A bare URL generated a preview card for the tested URL, but preview cards remain destination controlled.
- Complex grapheme clusters and Unicode normalization were not isolated and need a future live check.
A live result proves the tested surface on the tested date. Rendering is not identical across platform versions, themes, plugins, or email clients, and link preview cards are controlled by the destination.