Markdown in Slack: What Works and What Doesn't
Slack uses its own formatting syntax called mrkdwn, not standard markdown. Learn what works, what doesn't, and how to share formatted documents in Slack.
Last updated: March 2, 2026
Slack does not use standard markdown. It uses its own formatting system called mrkdwn (yes, without the “a”). Some syntax overlaps with markdown, but tables, headings, and images do not work. If you write markdown daily and switch to Slack, this guide explains exactly what carries over and what does not.
What Works in Slack
Slack supports a subset of text formatting that resembles markdown but uses different symbols in some cases:
| Formatting | Slack Syntax | Markdown Equivalent |
|---|---|---|
| Bold | *bold* | **bold** |
| Italic | _italic_ | *italic* |
~strikethrough~ | ~~strikethrough~~ | |
Inline code | `code` | `code` |
| Code block | ```code``` | ```code``` |
| Blockquote | > quote | > quote |
| Link | <https://example.com|text> | [text](url) |
| Ordered list | 1. item | 1. item |
| Unordered list | - item or * item | - item |
Notice the differences:
- Bold uses single
*in Slack, not double** - Italic uses
_in Slack, not* - Strikethrough uses single
~, not double~~ - Links use angle brackets with a pipe:
<url|text>
What Does Not Work in Slack
| Feature | Works in Markdown | Works in Slack |
|---|---|---|
Headings (# H1) | Yes | No |
| Tables | Yes | No |
Images () | Yes | No |
Task lists (- [x]) | Yes | No |
| Footnotes | Yes | No |
Horizontal rules (---) | Yes | No |
Nested blockquotes (>>) | Yes | No |
| Reference-style links | Yes | No |
| HTML tags | Yes | No |
| Syntax highlighting (language hint) | Yes | No |
Slack code blocks do not support language-specific syntax highlighting. Everything renders as plain monospace text.
Slack mrkdwn vs Standard Markdown
The key conflict: bold in Slack (*text*) is italic in markdown (*text*).
If you paste markdown into Slack:
**bold**shows as**bold**(literal asterisks, no formatting)*italic*shows as bold (because single asterisks are bold in Slack)[Link text](url)shows as literal text, not a clickable link# Headingshows as# Heading(literal hash)
This means copying markdown directly into Slack gives you broken formatting.
How to Share Markdown Content in Slack
Since pasting markdown into Slack produces garbled output, here are better approaches:
Option 1: Publish to a URL and Share the Link
Convert your markdown to a rendered web page and share the URL in Slack. Slack unfurls the link with a preview.
mdtolink publish meeting-notes.mdThis creates a clean, readable page at a shareable URL. Paste the URL in Slack, and your team sees a formatted preview without copy-paste issues.
Option 2: Use Slack’s Native Formatting
Manually convert key formatting:
Standard markdown: Slack equivalent:**bold** → *bold**italic* → _italic_~~strikethrough~~ → ~strikethrough~[text](url) → <url|text>This is tedious for long documents but works for short messages.
Option 3: Use a Code Snippet
For technical content, share the raw markdown as a code snippet:
- Click the
+button in the message box - Select “Create a text snippet”
- Set the file type to Markdown
- Paste your content
This preserves the formatting as-is but renders it as code, not as a formatted document.
Option 4: Attach the File
Drag and drop the .md file into Slack. Recipients can download it and view it in their own editor. Not ideal for quick reading, but preserves the source perfectly.
Slack Formatting Quick Reference
Bold:
*This is bold in Slack*Italic:
_This is italic in Slack_Strikethrough:
~This is struck through in Slack~Inline code:
Use `npm install` to install packages.Code block:
```function hello() { return "world";}```Blockquote:
> This is a quote in Slack.Link:
<https://mdtolink.com|MDtoLink>Ordered list:
1. First item2. Second itemUnordered list:
- Bullet one- Bullet twoSlack Workflow Builder and Markdown
Slack’s Workflow Builder and API use mrkdwn in bot messages. If you’re building Slack integrations:
- Bot messages use mrkdwn, not markdown
- The
textfield in API payloads uses mrkdwn formatting - Block Kit elements have their own formatting rules
- Some Block Kit blocks support a
"type": "mrkdwn"field
FAQ
Does Slack support markdown?
Not standard markdown. Slack uses its own system called mrkdwn that shares some syntax (code blocks, blockquotes, lists) but differs in key areas (bold, italic, links). Tables, headings, and images are not supported.
Why does pasting markdown into Slack look wrong?
Slack interprets markdown symbols differently. **bold** in markdown shows as literal asterisks in Slack because Slack uses *single* for bold. Links, headings, and tables are not parsed at all.
What is the best way to share a markdown document in Slack?
Publish the document to a URL and share the link. Slack unfurls the link with a preview, and recipients can click through to read the full formatted document. Tools like MDtoLink convert your .md file to a shareable URL in seconds.
Can I use syntax highlighting in Slack code blocks?
No. Slack code blocks render all text as plain monospace. There is no language hint support. For code with highlighting, share a link to a rendered version or use a GitHub Gist.
Try It Out
Write your document in the MDtoLink editor, then publish it and share the link in Slack. Your team gets a clean, formatted page without the mrkdwn headaches.
For the full markdown syntax reference, see the markdown cheat sheet.
Founder, MDtoLink
David builds developer tools and writes about markdown workflows, documentation, and AI-assisted publishing.
Publish your markdown to a shareable URL
One command. Free to start. No credit card.