This skill should be used when users request messages, notifications, or content formatted for Slack.
Slack uses its own markdown variant called "mrkdwn" which differs significantly from standard markdown. This skill provides the correct syntax and best practices for formatting messages that will be displayed properly in Slack.
Use this skill when:
Slack's mrkdwn is NOT standard markdown. Key differences include:
Bold:
**bold** or __bold__*bold* (single asterisks)Italic:
*italic* or _italic__italic_ (underscores only)Strikethrough:
~~strikethrough~~~strikethrough~ (single tildes)Code:
`code` (backticks)`code` (backticks - same as standard)Code blocks:
```language\ncode\n``````\ncode\n``` (backticks work, but no language highlighting syntax)Blockquotes:
> quote> quote or >>> multi-line quote (same, with special multi-line variant)Standard markdown:
[link text](https://example.com)
Slack format:
<https://example.com|link text>
Auto-linking:
<https://example.com>
Unordered lists:
- item or * itemOrdered lists:
1. itemUser mentions:
<@U12345678> # Mention user by ID
<@username> # May work in some contexts
Channel mentions:
<#C12345678> # Link to channel by ID
<#C12345678|channel-name> # With display name
Special mentions:
<!here> # Notify active users in channel
<!channel> # Notify all channel members
<!everyone> # Notify all workspace members (use sparingly)
Date formatting:
<!date^1392734382^{date_short}|Feb 18, 2014>
<!date^1392734382^{date_num} {time_secs}>
The following standard markdown features DO NOT work in Slack:
#, ##, etc.) - Not supported*bold _and italic_*) syntax[ ] and [x]For programmatic message formatting or complex layouts, use Slack's Block Kit instead of mrkdwn. Block Kit provides:
When users need rich formatting, interactive elements, or structured layouts, recommend using Block Kit and reference the Block Kit Builder tool at https://api.slack.com/block-kit/building.
Block Kit messages can embed mrkdwn text in specific text fields using:
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Your *formatted* text here"
}
}
**bold** with *bold**italic* with _italic_<url|text> format<@user> or <#channel> formatUser request: "Format this for Slack: Check out this article on productivity"
Slack formatted:
Check out *this article* on _productivity_
User request: "Format for Slack: See our documentation"
Slack formatted:
See our <https://example.com/docs|documentation>
User request: "Create a Slack notification about deployment"
Slack formatted:
<!here> :rocket: *Deployment Update*
Production deployment completed successfully!
• Version: v2.3.1
• Environment: Production
• Status: :white_check_mark: Success
<https://github.com/org/repo/releases/v2.3.1|View Release Notes>
User request: "Share this Python code in Slack"
Slack formatted:
Here's the updated function:
def process_data(items): return [item.strip() for item in items]
For comprehensive details on Slack formatting differences, syntax tables, and advanced features, refer to:
references/slack-mrkdwn-guide.md - Complete syntax comparison and best practices