Unmarkdown
Slack

Markdown vs Slack mrkdwn: What's the Difference?

Updated Feb 20, 2026 · 4 min read

Slack's formatting system looks like markdown at first glance, but it's actually a different format called mrkdwn (yes, without the 'a'). The differences are subtle but cause real problems when you try to paste markdown-formatted text from AI tools into Slack.

Quick reference

FeatureMarkdownSlack mrkdwn
Bold**text***text*
Italic*text* or _text__text_
Strikethrough~~text~~~text~
Inline code`code``code`
Code block``````
Link[text](url)<url|text>
Blockquote> text> text
Ordered list1. text1. text
Unordered list- text- text
Headings# textNot supported
TablesPipe syntaxNot supported
Images![alt](url)Not supported
Horizontal rule---Not supported
Task lists- [ ] textNot supported

The biggest differences explained

Bold: single vs double asterisks

This is the most common source of confusion. In standard markdown, *text* is italic and **text** is bold. In Slack mrkdwn, *text* is bold and there's no separate syntax for bold italic.

When you paste **important deadline** from ChatGPT into Slack, you see the literal asterisks instead of bold text. Slack doesn't recognize double asterisks.

Markdown links look like [click here](https://example.com). Slack links look like <https://example.com|click here>. The square brackets, parentheses, and angle brackets are entirely swapped.

Pasting a markdown link into Slack shows the raw [text](url) syntax instead of a clickable link.

Headings: don't exist in Slack

Markdown has 6 heading levels (# through ######). Slack has none. There's no way to create a heading in a Slack message. The closest equivalent is bold text on its own line.

Tables: not possible

Markdown tables use pipe characters and dashes. Slack has no table rendering capability whatsoever. Pipes and dashes display as plain text.

What works the same

A few elements are identical in both formats:

  • Inline code: `code` works in both
  • Code blocks: Triple backticks work in both (though Slack ignores language labels)
  • Blockquotes: > quoted text works in both
  • Lists: Basic unordered (-) and ordered (1.) lists work in both

Why Slack chose a different format

Slack was built before markdown became the standard for AI tools. Their mrkdwn format was designed for quick messaging:

  • Single asterisks for bold is faster to type than double
  • Angle-bracket links work with Slack's internal link system (channels, users, emojis)
  • No heading support because messages are short, not documents

This made sense for chat in 2013. But now that people regularly paste long, structured AI output into Slack, the mismatch creates constant friction.

How to convert between them

Unmarkdown™ automatically translates standard markdown to Slack mrkdwn:

  1. Paste your markdown (from ChatGPT, Claude, or any source) into Unmarkdown™
  2. Click "Slack"
  3. The output is proper mrkdwn that Slack renders correctly

Conversions include:

  • **bold** becomes *bold*
  • *italic* becomes _italic_
  • ~~strike~~ becomes ~strike~
  • [text](url) becomes <url|text>
  • # Heading becomes *Heading* (bold, since headings don't exist)
  • Tables become readable plain text

Slack's Block Kit: the advanced alternative

For Slack app developers, Block Kit provides rich formatting capabilities beyond mrkdwn, including headers, dividers, and image blocks. But Block Kit is only available through the Slack API, not through the message composer.

For regular users pasting content into Slack, mrkdwn is the only option.

When to use Slack vs other destinations

Consider where your content will be most readable:

  • Quick summaries and updates: Slack is fine
  • Documents with structure: Google Docs or Word
  • Professional communication: Email
  • Notes with full formatting: OneNote

Unmarkdown™ supports all of these from the same interface, so you can try different destinations and see which one works best for your content.

Your markdown deserves a beautiful home.

Start publishing for free. Upgrade when you need more.

View pricing