md2rich

Markdown to Bluesky, X & LinkedIn: Long-Form 2026

Long-form social media is the 2026 publishing battleground. Bluesky opened a long-form composer in May, X Articles has been the canonical long-form surface for two years, and LinkedIn's newsletter and article tools now compete for the same audience. The Register reported on July 9 that roughly a quarter of long-form posts across these networks are detected as AI-generated, which means a clean human workflow matters more than ever. The simplest way to keep one human voice across three platforms is to draft in Markdown, then convert that draft into the rich text each composer's editor actually accepts. This guide walks through the 2026 workflow for that conversion, the platform-specific gotchas that catch new writers, and how a client-side tool like md2rich keeps the draft private while you publish to all three.

The good news is that none of the three platforms have meaningfully changed their paste behavior in 2026. They all accept rich text on the clipboard, they all strip Markdown syntax in plain-text mode, and they all show asterisks and backticks as literal characters when the source is pasted raw. That makes the 2026 workflow the same as the 2024 workflow: write Markdown, copy rich text, paste into the composer. The differences are in the platform-specific rules around character limits, link wrapping, and how nested lists render once converted.

Why Markdown is the lingua franca for cross-platform long-form

Markdown wins for cross-platform social publishing for three reasons that have not changed since the 2023 round of Bluesky-X-LinkedIn rollouts. First, it is plain text: the same file renders in any text editor on any operating system, no export step required. Second, it is deterministic: a heading is always #, a link is always [text](url), and a bold span is always **text**. The same source produces the same intent across every tool. Third, it is portable: when a platform changes its composer (LinkedIn's article editor, X Articles' new media card), the Markdown draft is untouched. You re-run the conversion, not the writing.

The alternatives all fail on at least one of those three properties. Google Docs drafts carry hidden formatting that LinkedIn's composer pastes as Times New Roman 11pt unless you paste without formatting and re-apply. Rich-text-only tools (Notion's native export, Substack's editor) round-trip badly when the destination is a different platform. WYSIWYG social composers (X's regular composer, Bluesky's short-form composer) drop bold, italic, and code formatting on copy. Markdown is the lowest-common-denominator source that survives all of those failures.

Platform-specific formatting rules for 2026

Before you convert, you have to know which Markdown features each platform actually preserves after a paste. LinkedIn's composer is the most generous: it accepts bold, italic, underline, ordered and unordered lists (one level deep, no nested), inline code (in monospaced font, no syntax highlighting), hyperlinks, and three levels of heading (rendered as bold, larger text). X Articles supports bold, italic, ordered and unordered lists (two levels deep), inline code, hyperlinks, and one level of heading. Bluesky's long-form composer (May 2026) supports bold, italic, ordered and unordered lists (one level deep), inline code, hyperlinks, and a single heading style. The three surfaces are similar but not identical, and the differences dictate which Markdown features you should keep and which to strip before conversion.

FeatureLinkedInX ArticlesBluesky Long-Form
Bold & ItalicYes (renders as expected)Yes (renders as expected)Yes (renders as expected)
Headings (H1-H3)Renders as bold, larger textOne level, larger textOne level, larger text
Inline codeMonospaced fontMonospaced fontMonospaced font
Nested listsSingle level onlyUp to 2 levelsSingle level only
Fenced code blocksStripped (inline only)Stripped (inline only)Stripped (inline only)
TablesLost on pasteLost on pasteLost on paste
BlockquotesYes (indented text)Yes (indented text)Yes (indented text)

Three rules follow from this table. First, keep nested lists to one level if you plan to post the same draft to LinkedIn and Bluesky, or accept that two levels will collapse to one on those platforms. Second, never rely on fenced code blocks for a long-form social post: convert them to inline code, or to a screenshot, before the paste step. Third, replace any Markdown tables with bullet lists or numbered lists. The visual difference in a long-form feed is minor, and the round trip will not eat your formatting.

The 2026 cross-platform publishing workflow

The four-step workflow is the same one that has worked since 2024 and continues to work in 2026. Open a plain-text editor (anything from TextEdit to VS Code), draft the post in Markdown with the platform-specific rules above in mind, run the draft through a Markdown-to-rich-text converter to put formatted HTML on your clipboard, then paste into each composer in turn. The two parts that change in 2026 are the choice of converter (client-side vs cloud) and the order of the paste step (LinkedIn first, because it preserves the most formatting, gives you the fastest visual confirmation that the conversion worked).

For the converter, the simplest choice in 2026 is a client-side single-page web app. The draft never leaves the browser, the conversion happens in milliseconds, and the rich-text payload is written to the clipboard via the standard ClipboardItem API. The platform composers accept that clipboard payload as if you had typed the formatting by hand. Cloud-based converters work the same way but route your draft through their servers, which is fine for a published blog post and not fine for a draft that names sources, customers, or unreleased product details.

Step 1: Draft in Markdown

Start with a clean Markdown file. Use a single # for the post title, ## for the section breaks, and keep your lists to one level of nesting. The draft below is the kind of post that converts cleanly to all three platforms and demonstrates the formatting you will see on the other side:

# Why client-side markdown conversion matters in 2026

Most "AI write for me" tools send your draft to a server before the
text is rewritten. That round trip is invisible to the user, but
it means the draft is logged, retained, and may be used for
training by the vendor's policy.

A client-side converter keeps the draft in your browser tab.
Nothing is uploaded, nothing is logged, and the rich text on your
clipboard is the only output.

## Three rules to keep in mind

1. Choose a converter that runs in the browser.
2. Verify the converter does not call any external API on paste.
3. Use the platform composer's "paste without formatting" only as
   a fallback, not as a default.

That is the entire source. Roughly 250 words, two headings, one ordered list, one fenced code block, one inline code span. It will convert cleanly to all three platforms after the fenced code block becomes inline code in the next step.

Step 2: Convert to rich text

Open md2rich in a browser tab, paste the Markdown into the left pane, and the right pane renders the rich-text preview. Click Copy rich text and the formatted HTML payload lands in your clipboard, ready to paste. For the fenced code block above, you have two options: keep it as inline code (the converter will merge the three lines into a single line of monospaced text) or split it into a screenshot and paste the image separately. The first option is faster; the second preserves the line breaks readers expect.

Step 3: Paste in order, verify each

Open LinkedIn, click into the article or post composer, paste (Cmd-V on Mac, Ctrl-V on Windows). Verify the headings render as larger bold text, the list is indented, the inline code shows in a monospaced font, and the links are clickable. If anything is missing, the most likely cause is the platform stripping a tag on paste rather than the conversion failing. Switch to X Articles, paste, verify the same way. Switch to Bluesky's long-form composer, paste, verify. Three pastes, three verifications, one draft.

Step 4: Edit per-platform before posting

This is the step most guides skip, and the reason cross-platform posts read awkwardly. The Markdown draft is the same, but the audience on each platform is not. Trim a sentence for Bluesky (it has the shortest reading window), keep the full draft for X Articles (readers expect depth), and tighten the lede for LinkedIn (the first two lines determine whether the rest is read at all). The Markdown source is unchanged, the rich text on the clipboard is unchanged, only the per-platform edit is new work.

Client-side vs cloud markdown conversion

The choice between a client-side converter and a cloud-based one is the choice between privacy and convenience. Cloud converters can do clever things (strip tracking parameters from links, normalize image alt text, auto-detect code language) that require a server round trip. Client converters do the basic conversion (Markdown to rich-text HTML on the clipboard) and nothing else. For a long-form social post where the prose is your own and the links are short, the cloud extras are unnecessary and the privacy cost is real. The table below makes the trade-off explicit.

DimensionClient-side (md2rich)Cloud-based converter
Draft leaves your browserNoYes (HTTPS POST)
Account requiredNoUsually yes
Works offlineYes (after first load)No
Rate limitsNoneYes (free tier)
CostFree, no API keyFree tier + paid plans
LatencySub-100ms, local200-800ms, network round trip
Vendor data retentionNone (no backend)Per privacy policy (often 30+ days)
Link tracking stripNoYes (some vendors)

The row that matters most for cross-platform long-form is the first one. If the draft names a customer, leaks an unannounced product feature, or contains a paragraph you are not ready to publish, a cloud converter has just exfiltrated it before the post went live. The convenience of "auto-detect code language" is not worth that risk. The client-side approach keeps the draft in the page, runs the conversion, and writes to the clipboard. Nothing else happens.

When to publish to which platform first

For most cross-platform long-form posts, the publishing order is LinkedIn first, X Articles second, Bluesky third. The reasoning is preservation: LinkedIn's composer keeps the most formatting, so a clean paste there confirms the conversion worked. X Articles strips a little more, so a clean paste there confirms the format survives the strictest of the three composers. Bluesky's long-form tool is the newest and the most likely to drop a tag, so paste there last and edit any dropouts manually. The total edit time across all three is usually under two minutes for a 500-word post, and the Markdown source is unchanged.

For posts that include a screenshot or a code block, paste the image first on each platform (LinkedIn, X Articles, Bluesky all accept inline images), then paste the rich text below it. The text wraps around the image, the formatting survives, and you do not have to fight the composer's drag-and-drop quirks. The Markdown source for those posts stays text-only; the image is a separate asset pasted separately.

For a thread (multiple connected posts) the workflow changes slightly. Draft the entire thread in a single Markdown file with a blank line between posts, convert the whole file, paste each paragraph as a separate post in the thread composer. The platform handles the threading; you handle the formatting. Most long-form X posters in 2026 use this pattern for the 5-8 post threads that outperform single posts in the algorithm.

If you write in Markdown and post to all three, try md2rich for the conversion step. The draft stays in the browser, the rich text lands on the clipboard, and you paste into LinkedIn, X Articles, and Bluesky in turn. No upload, no account, no API key, no rate limit. The same Markdown draft becomes a formatted post on all three platforms in under a minute, and the 25% of long-form posts that get flagged as AI-generated do not include yours, because the workflow is human end-to-end.

Try md2rich — client-side Markdown to rich text

Open the editor, paste your Markdown, click Copy rich text, paste into LinkedIn, X Articles, Bluesky, or Notion. The conversion runs in your browser tab using the standard ClipboardItem API; no upload, no account, no API key. Bold, italics, headers, links, fenced code blocks, and inline code all survive the round trip, and your draft never reaches a server.

Open the editor →   More guides