Slack markdown cheat sheet

Slack’s formatting language — officially “mrkdwn” — looks like markdown but uses different characters for the basics. Here’s the translation table.

EffectType thisNotes
Bold*bold*Single asterisks — double asterisks show literally.
Italic_italic_
Strikethrough~strikethrough~Single tildes, not the ~~double~~ of standard markdown.
Inline code`code`
Code block``` code here ```No language tags and no syntax highlighting in messages.
Quote> quoted line
Bulleted list- item or • itemSlack auto-formats; there is no nested-list syntax in the composer.
Numbered list1. item
Linkpaste the URLIn the API: <https://example.com|shown text>. The [text](url) form does not work.
Emoji:tada:
Mention@name, #channel

Why does pasted markdown break in Slack?

Because Slack's mrkdwn swapped the characters: standard markdown's **bold** arrives as asterisk-wrapped italic-looking noise, ~~strike~~ shows its tildes, and [link](url) stays literal text. Headings, tables, images, and horizontal rules have no Slack equivalent at all — paste a README into a message and all of those degrade to plain text.

How do you share real markdown through Slack?

Three options that keep formatting intact: create a Slack text snippet (attach → “Create a text snippet”, type Markdown) which renders on expansion; or share the document as a link instead — paste the markdown here and drop the URL in the channel, so the doc renders fully with code highlighting and tables; or convert it to a PDF with the markdown to PDF tool and upload that.

Is mrkdwn the same in the Slack API?

The API is stricter: messages sent via chat.postMessage use mrkdwn in text fields, links must be written as <url|text>, and &, <, > must be HTML-escaped. Block Kit text objects accept "type": "mrkdwn" with the same rules.

Related

Standard syntax: markdown cheat sheet · Discord formatting · strikethrough guide · underline guide