Slack Formatting: What Works, and How Slack Differs from Markdown
By the MDConverter team · Updated · 4 min read
Quick answer
Slack uses its own dialect, not standard Markdown. Bold is *one asterisk*, italic _underscores_, strikethrough ~tildes~, and there are no headings or tables. Slack’s message box formats with a toolbar by default; for typed markup, turn on Preferences › Advanced › Format messages with markup. Bots, webhooks and apps send mrkdwn, where links are written <https://example.com|text>. To turn Markdown from GitHub or an AI assistant into either form, use Markdown to Slack.
Slack vs Markdown: what changes
| Markdown | Slack |
|---|---|
**bold** |
*bold* — one asterisk |
*italic* or _italic_ |
_italic_ |
~~strike~~ |
~strike~ — one tilde |
\code`` and triple-backtick blocks |
the same |
> quote |
the same |
[text](https://…) |
<https://…|text> for bots and webhooks; [text](https://…) in the message box when markup is turned on |
# Heading |
not supported — use a bold line |
| tables | not supported — use a code block or a list |
- item lists |
typed bullets in the message box; no list syntax in mrkdwn |
Paste Markdown into Slack unchanged and the double asterisks and hashes appear as typed. The quickest fix is Markdown to Slack, which converts all of the above, turns headings into bold lines and tables into an aligned grid.
In the message box: toolbar or typed markup
By default Slack formats with a toolbar: select text, then choose Bold, Italics, Underline, Strikethrough, Code, Block quote, Code block, Ordered list or Bulleted list. Press Shift + Enter for a new line (this can be changed in your Enter key preferences). Typing 1. and a space starts a numbered list, and an asterisk and a space starts a bulleted list.
To type markup instead, go to Preferences › Advanced and turn on Format messages with markup. Then:
*bold*,_italic_,~strike~,\code``>at the start of a line for a quote- three backticks around text for a code block
[text](URL)for a link
Three things to know about that mode, from Slack’s help: formatting is applied when you send the message, pasted text arrives as plain text, and automatic list formatting is off.
For bots, webhooks and apps: mrkdwn
Messages sent through Slack’s API, incoming webhooks and apps use mrkdwn:
- Styles:
*bold*,_italic_,~strike~; inline code in backticks (formatting inside is not applied); a multi-line block in triple backticks; quotes with>at the start of a line; line breaks as\n. - Links: a bare URL is linked automatically; custom text is
<https://example.com|link text>; email is<mailto:name@example.com|label>. - Mentions:
<@U012AB3CD>for a person,<#C123ABC456>for a channel, and<!here>,<!channel>or<!everyone>(use these sparingly — they notify people). - Escaping: write
&,<and>as&,<and>when you mean the characters themselves, because<starts a link or mention. - No lists, headings or tables. Lists are written as plain text lines starting with
-or•. - In Block Kit, text objects of type
mrkdwnare formatted; set the type toplain_textto turn formatting off.
Markdown to Slack has an option for which of these you are posting to: choose Bot or webhook (API) for <url|text> links, or Message box (markup on) for [text](url) links.
Headings, tables and lists
Slack messages have no heading sizes, so use a bold line, ideally with a blank line before it. Slack has no table syntax either: put a small table in a code block so the columns stay aligned in Slack’s monospace font, or list each row as “Name: value” lines. For a real table, share a spreadsheet or attach a file.
For lists, type bullets yourself — the • character or a hyphen — one item per line, or use the toolbar’s list buttons in the default message box.
Going the other way, and other chat apps
- Slack → Markdown: copy a message’s markup and use Slack to Markdown to get GitHub-style Markdown for a README, ticket or wiki.
- Other chat apps each have their own dialect: WhatsApp and Telegram are covered by converters here, and Discord formatting by Markdown to Discord (and back with Discord to Markdown). Forums that use square-bracket codes are covered by Markdown to BBCode and BBCode to Markdown.
- Tickets and wikis: see Jira formatting for Atlassian’s syntax.
What Slack reads in each place
Which syntax is applied where you write.
| App | Supported | Notes |
|---|---|---|
| Message box, default (toolbar) | Partly | Use the toolbar and list buttons. Typed 1. and * start lists. |
| Message box with “Format messages with markup” | Yes | bold, italic, |
| Bots, webhooks and apps (mrkdwn) | Yes | Same styles; links as <url|text>. Escape &, < and >. |
| Headings | No | Not supported anywhere. Use a bold line. |
| Tables | No | Not supported. Use a code block grid or label: value lines. |
| Standard Markdown (**bold**, # heading) | No | Shows as typed. Convert with Markdown to Slack. |
Common mistakes and how to fix them
| Problem | Fix |
|---|---|
| My message shows double asterisks and # symbols | Slack bold is one asterisk and Slack has no headings. Convert with Markdown to Slack, or reformat by hand. |
| A link shows as https://…|text in my message | That angle-bracket form is for bots and webhooks. In the message box, turn on “Format messages with markup” and use text, or select the text and use the toolbar’s link button. |
| Pasted formatted text arrives without its formatting | With “Format messages with markup” on, Slack pastes plain text and applies markup when you send. Paste Slack-style markup (*bold*), not Markdown. |
| A message from my script is cut off or shows a mention I did not write | A < in the text starts a link or mention. Escape &, < and > as &, < and > in text you send through the API. |
| A table turns into a mess of pipes | Slack cannot display tables. Convert it to a grid in a code block or label: value lines with Markdown to Slack. |
Tools for this
Frequently Asked Questions About Slack formatting
Comprehensive answers to common technical, formatting, security, and compatibility questions.
*bold*. Standard Markdown’s double asterisks do not make bold in Slack.> quotes, underscores for italics — but bold, strikethrough and links differ, and there are no headings or tables. Markdown to Slack converts standard Markdown.[text](https://example.com). In bot and webhook messages, write <https://example.com|text>.Related reading
- Jira Formatting: Markdown vs Wiki Markup — Markdown in Jira Cloud, wiki markup in Data Center — what each accepts and how to convert.
- How to Use Markdown in Notion: Import, Shortcuts and Export — Import Markdown into Notion, type with its shortcuts, and export pages back out.
- Markdown Text Formatting: Bold, Italic, Strikethrough and More — Bold, italic, strikethrough, underline, highlight, superscript and subscript — with app support.