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.

· · 6 min read

Last updated: March 2, 2026

markdown slack platform-guide

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:

FormattingSlack SyntaxMarkdown Equivalent
Bold*bold***bold**
Italic_italic_*italic*
Strikethrough~strikethrough~~~strikethrough~~
Inline code`code``code`
Code block```code``````code```
Blockquote> quote> quote
Link<https://example.com|text>[text](url)
Ordered list1. item1. 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

FeatureWorks in MarkdownWorks in Slack
Headings (# H1)YesNo
TablesYesNo
Images (![alt](url))YesNo
Task lists (- [x])YesNo
FootnotesYesNo
Horizontal rules (---)YesNo
Nested blockquotes (>>)YesNo
Reference-style linksYesNo
HTML tagsYesNo
Syntax highlighting (language hint)YesNo

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
  • # Heading shows 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:

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.md

This 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:

  1. Click the + button in the message box
  2. Select “Create a text snippet”
  3. Set the file type to Markdown
  4. 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 item
2. Second item

Unordered list:

- Bullet one
- Bullet two

Slack 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 text field 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.


David Schemm
David Schemm

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.