Markdown to Slack mrkdwn Converter
Slack does not use standard Markdown. Its mrkdwn dialect bolds with single asterisks, italicizes with underscores, and writes links as <url|text>. Paste normal Markdown here and get a version that renders correctly when you paste it into a Slack message, a workflow step, or an incoming webhook payload.
How to use the Markdown to Slack mrkdwn Converter
Type or paste your Markdown on the left. The Slack-ready version appears on the right as you type. Click Copy for Slack and paste it straight into a message box, a Slack Workflow Builder step, or the text field of an chat.postMessage or webhook payload.
The converter remaps every formatting difference: double-asterisk bold becomes single-asterisk bold, asterisk or underscore italics become underscore italics, double-tilde strikethrough becomes single-tilde, and inline links become Slack's angle-bracket form. Headings, which Slack does not support, are rendered as bold lines so they still stand out. Bullet lists are converted to the bullet character Slack expects, and code spans and fenced code blocks are passed through untouched.
Everything happens in your browser, so you can paste internal release notes or incident summaries without anything leaving your device.
How Slack mrkdwn differs from Markdown
Slack's text formatting looks like Markdown at a glance but diverges in almost every marker. Standard Markdown bolds text with two asterisks or two underscores; Slack bolds with a single pair of asterisks and treats single underscores as italics. So **bold** in Markdown must become *bold* for Slack, and *italic* must become _italic_. Get this wrong and your "bold" heading shows up wrapped in literal asterisks.
Links are the other big difference. Markdown writes [label](https://url); Slack writes <https://url|label>. Strikethrough drops from two tildes to one. Slack has no heading syntax at all, so the common, readable workaround is to bold the heading text and let it sit on its own line. Block quotes happen to match — both use a leading > — and inline code and triple-backtick code blocks are identical, which is why this tool leaves them alone.
Because the bold and italic markers overlap (an asterisk means different things in each system), naive find-and-replace breaks easily: convert italics first and you mangle bold, convert bold first and you can swallow italic markers. This converter protects code spans, transforms bold through a temporary placeholder, then handles italics, so the two never collide.
Common use cases
- Release notes and changelogs. Author once in Markdown, then post a correctly formatted summary to a Slack channel.
- Incident updates. Convert a Markdown status write-up into mrkdwn for an incident channel without hand-editing every asterisk.
- Bots and webhooks. Generate the
textfield forchat.postMessageor an incoming webhook from Markdown your service already produces. - Workflow Builder. Paste tidy mrkdwn into a Slack workflow message step instead of fighting the formatting by hand.