Turn Markdown into an X post or thread
X renders no Markdown at all. In a live test on 2026-08-24 every heading marker, emphasis marker, backtick, quote marker, and table pipe stayed visible as literal punctuation, and the composer offered no formatting control of any kind. What survives is paragraph structure and detected URLs. So the handoff is cleaned plain text, split into posts that each stand on their own.
Handoff mode: Plain text. Tested in X web post and thread 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
Each segment is counted with X weighted rules rather than string length, because those differ sharply: an ordinary Latin character costs 1, an emoji or CJK character costs 2, and any detected URL costs 23 no matter how long it really is. All three were confirmed against the live composer at the 280 and 281 boundary. Splits are chosen at complete sections first, then paragraphs, then complete list groups, then sentences, and a visible hard cut only when one item cannot fit at all.
What happens to each construct
| Rule | What happens | Result | Why | Confidence | Last tested |
|---|---|---|---|---|---|
X-TABLE-02 | A wide table needs a summary and a media plan. | Manual step | Raw pipes are not readable output, and flattening a wide table loses cell relationships. | Verified | 2026-08-24 |
X-IMAGE-01 | Images do not transfer through a text copy. | Manual step | Markdown image syntax stayed literal and nothing was uploaded in the tested composer. | Verified | 2026-08-24 |
X-SPECIAL-01 | Footnotes, math, Mermaid, Obsidian syntax, and raw HTML are resolved to readable text or a media task. | Manual step | The composer has no control for any of these and the focused test did not isolate each one. | 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 |
X-EMPH-01 | Bold, italic, and strike are removed. | Degraded | The composer exposes no formatting controls, and Unicode look-alike fonts hurt screen readers and search. | Verified | 2026-08-24 |
X-CODE-01 | Code loses its formatting and gets a Code: label. | Degraded | There is no code control in the composer and backticks stay literal. | Verified | 2026-08-24 |
X-TABLE-01 | Small tables become labeled rows, keeping every cell value. | Degraded | Pipes and separator rows stayed literal in the tested composer. | Verified | 2026-08-24 |
X-HEAD-01 | Heading markers are removed; the text becomes a standalone line. | Changed | The composer has no heading control and left # markers literal. | Verified | 2026-08-24 |
X-LIST-01 | Lists become plain bullet or numbered lines; task state becomes words. | Changed | Markdown list markers stayed as ordinary characters in the tested composer. | Verified | 2026-08-24 |
X-LINK-01 | Links become label: URL and weigh 23 characters each. | Changed | A detected URL weighs 23 whatever its length. A preview card is never guaranteed. | Verified | 2026-08-24 |
X-QUOTE-01 | Quotes get a Quote: label. | Changed | Markdown quote markers stayed literal in the tested composer. | Verified | 2026-08-24 |
X-DIV-01 | Dividers become a simple separator line. | Changed | Markdown dividers have no equivalent in the composer. | Verified | 2026-08-24 |
X-LIMIT-01 | Each post is counted with X weighted rules, not string length. | Changed | Emoji and CJK weigh 2 and a detected URL weighs 23, verified against the live composer. | Verified | 2026-08-24 |
X-THREAD-01 | Longer drafts split into a thread at section, paragraph, list, then sentence boundaries. | Changed | Each segment must stand on its own and stay inside the weighted limit. | Verified | 2026-08-24 |
X-PARA-01 | Paragraph spacing and hard breaks are preserved. | Kept | Blank lines and line breaks survived in the tested composer. | Verified | 2026-08-24 |
Where X usually goes wrong
Emphasis simply disappears
Bold and italic have no equivalent, so the markers are removed. Unicode look-alike alphabets are deliberately not used as a substitute: they break screen readers and search, and they are not semantic emphasis.
Images never travel with the text
Markdown image syntax stayed literal and nothing was uploaded. Alt text and captions are preserved and every image lands in an attachment checklist instead.
Tables need a decision
Pipes stay literal. Small tables become labeled rows that keep every cell value. Wide tables get a summary and a media task rather than a wall of punctuation.
Preview cards are not yours to control
A detected URL did generate a normal link preview in the test, but preview generation depends on the target and the X crawler, so it is never promised here.
Evidence from the test

Limits of what was tested
- Premium longer posts up to 25,000 characters are documented but the tested account was free, so that mode is out of scope.
- Nothing was posted and no media was uploaded during the test.
- The focused test did not isolate every specialized Markdown construct.
- URL preview generation depends on the destination and the crawler.
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.