How Every Social Platform Mangles Your Markdown
A citable, feature-by-feature guide to how twelve social platforms handle markdown—what survives, what gets stripped, and the character-count quirks that trip you up.
The dream of write once, post everywhere dies the moment you hit paste. One markdown draft becomes crisp bold headings on LinkedIn, three literal asterisks on Instagram, and a strikethrough that survives in exactly one place out of twelve. This is a field guide to what actually survives when your markdown lands on each of the twelve networks Markdown2Social exports to—and where it quietly falls apart. It maps what the converter preserves per platform, so you can predict the breakage before it happens.
Three tiers decide almost everything
Under the hood, platforms sort into three buckets. Rich platforms accept real formatting and receive literal HTML—`<strong>`, `<em>`, `<pre><code>`—pasted through the clipboard: LinkedIn, X Articles, Mastodon, YouTube, Reddit, and Discord. Limited platforms keep only bold, italics, and links: X/Twitter, Facebook, Threads, and Bluesky. Plain platforms take no markdown at all and strip every marker to bare text: Instagram and TikTok. Knowing which bucket you are pasting into predicts most of what breaks.
Emphasis: what survives, feature by feature
- Bold (`**text**`) and italics (`*text*`) survive on every platform except Instagram and TikTok, which strip the markers to plain text.
- Underscore syntax works too: `__bold__` and `_italic_` convert exactly like their asterisk equivalents. Underscores only count at a word boundary, so `snake_case_name` and underscores inside URLs are left alone.
- Combined `***bold italic***` composes correctly wherever both are supported, nesting into bold-plus-italic; on Instagram and TikTok it flattens to plain text.
- Strikethrough (`~~text~~`) survives on exactly one platform out of twelve: X Articles. Every other network—including Reddit and Discord—drops the markers to plain text.
Structure: headings, code, quotes, and lists
- Headings work on the rich platforms only, and only three levels deep: `#`, `##`, and `###` map to real headings, while `####`, `#####`, and `######` all collapse into the same fourth-level heading. Limited and plain platforms strip the `#` and keep the bare text.
- Inline code (`` `code` ``) and fenced code blocks (```) survive on rich platforms; elsewhere the backticks vanish and the text remains. A language tag like ```js is parsed but never used—no platform gets syntax highlighting.
- Blockquotes survive on rich platforms, but each `>` line becomes its own separate quote block rather than merging into one multi-line quote.
- Ordered lists keep whatever numbers you typed—they are never renumbered. Unordered lists become `•` bullet lines. Nesting survives: sub-items are indented and switch to a hollow `◦` bullet on rich platforms, and keep their indentation as leading spaces on plain ones.
Links, images, and the syntax nobody parses
- Links (`[text](url)`) survive on every tier except plain: Instagram and TikTok keep the visible text and throw the URL away entirely.
- Images (``) never embed—no platform gets a real image. Instead they degrade gracefully: on platforms that support links, the image becomes a link to the image URL with the alt text as the label; on plain platforms (Instagram, TikTok) it collapses to just the alt text.
- Tables render as real tables on Reddit and X Articles, with `:---:` column alignment respected. Everywhere else they flatten into readable `Header: value` groups rather than dumping raw pipes into your post.
- Horizontal rules (`---`) become a real divider on platforms that accept block markup, and are dropped entirely on the rest, where a row of dashes would just read as noise.
- Spoilers (`||text||`) are native syntax on Discord, so the bars are passed through for Discord to render. Every other platform gets the bare text with the bars removed.
Counter and clipboard gotchas
- No fake Unicode bold. Many converters swap letters for 𝗕𝗼𝗹𝗱 glyphs to fake formatting on plain platforms; this one never does. It is real HTML through the clipboard or nothing.
- X and Bluesky count every raw URL as a flat 23 characters—t.co-style math, so a giant link and a tiny one weigh the same. Everywhere else, a raw URL counts its full literal length.
- X/Twitter gets an invisible fix: zero-width space characters are injected into blank lines before copying, because X's composer otherwise collapses your paragraph breaks. No other platform needs it.
- Markdown links count only their visible label, never the hidden URL—so the character count matches exactly what gets pasted, not your raw markdown.
LinkedIn takes the full rich treatment: bold, italics, headings (down to the fourth level), inline code, code blocks, blockquotes, nested lists, horizontal rules, and links all export as real formatting. The gaps are strikethrough, which is stripped, and tables, which flatten into readable `Header: value` groups.
X / Twitter
X keeps bold, italics, and links, and strips everything else—headings, code, blockquotes, and strikethrough all fall back to plain text. Links count as a flat 23 characters against the limit, and blank lines get invisible zero-width spaces so your paragraph breaks survive the composer.
X Articles
X Articles is the richest target of all—the only one of the twelve where strikethrough (`~~text~~`) survives, on top of the full set of headings, code, quotes, lists, and links. If you need struck-through text anywhere, this is the one place it lands.
Instagram takes no markdown. Every marker is stripped: bold and italics become bare text, headings lose their `#`, links keep the words but lose the URL, and bullets render as plain `•` lines. Write captions expecting zero formatting.
Facebook keeps bold, italics, and links, and strips headings, code, and quotes to plain text. Numbered lists pass through with their numbers intact; unordered bullets become `•` lines.
Threads
Threads behaves like Facebook and X's feed: bold, italics, and links survive, and everything else flattens. Treat it as a plain-text-plus-emphasis surface.
Mastodon
Mastodon takes the full rich set—headings, code blocks, blockquotes, nested lists, horizontal rules, and links—minus strikethrough, which is dropped, and tables, which flatten to text.
YouTube
YouTube receives the full rich formatting set except strikethrough. Code blocks and headings survive, and links are kept as real anchors.
TikTok
TikTok, like Instagram, strips all markdown. Bold, italics, headings, code, and links (URL discarded) all reduce to plain text, with `•` standing in for bullets.
Reddit gets the full rich set—bold, italics, headings, inline and fenced code, blockquotes, nested lists, horizontal rules, and links—plus real tables with column alignment, one of only two platforms that get them. Strikethrough is still stripped, and each `>` line is its own quote block.
Discord
Discord takes the full rich set—bold, italics, headings, inline code, code blocks, blockquotes, nested lists, and horizontal rules—and it is the only platform that keeps spoiler bars, since `||text||` is native Discord syntax it renders itself. Strikethrough is still stripped, and tables flatten to text.
Bluesky
Bluesky keeps bold, italics, and links only, with everything else stripped. Like X, it weighs each link as a flat 23 characters no matter the URL's real length.
Key takeaways
- Three tiers cover it: rich (LinkedIn, X Articles, Mastodon, YouTube, Reddit, Discord), limited to bold/italic/links (X, Facebook, Threads, Bluesky), and plain (Instagram, TikTok).
- Strikethrough survives on exactly one platform: X Articles.
- Tables render for real on just two platforms—Reddit and X Articles—and flatten to `Header: value` text everywhere else.
- Spoiler bars survive only on Discord, whose own syntax they are; nested lists and horizontal rules now survive across the rich tier.
- X and Bluesky weigh every raw URL as 23 characters; everyone else counts its full length.
- Headings max out at four visible levels; `####` and deeper all look identical.
You do not have to memorize this grid. Markdown2Social keeps a live preview and character counter for each network, so you can see exactly what survives before you paste—write your draft once in markdown and export a clean version per platform. It is free and runs in the browser.