Markdown to Slack
Convert Markdown to Slack mrkdwn syntax — bold, italic, code, links, and lists.
or drop a file here
What is Slack mrkdwn?
Slack uses its own mrkdwn format that differs from standard Markdown in key ways: *bold* instead of **bold**, _italic_ instead of *italic*, ~strikethrough~ instead of ~~strikethrough~~, and <url|text> instead of [text](url). Headings become bold text since Slack has no heading levels. Code blocks and inline code use the same backtick syntax as Markdown. This tool converts all these patterns in one pass so you can write in Markdown and paste directly into Slack.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Posting a formatted message to Slack when your source is written in Markdown.
- Converting release notes for a channel announcement.
- Adapting documentation snippets for a Slack thread.
- Producing a message body for a Slack webhook from Markdown input.
- Checking which of your formatting will survive before posting.
Frequently Asked Questions
- Why does Slack need a different syntax at all?
- Slack's mrkdwn predates its Markdown support and uses single characters: `*bold*` where Markdown wants `**bold**`, `_italic_`, and `~strike~` where Markdown wants `~~strike~~`. Pasting real Markdown into Slack leaves the asterisks visible.
- What happens to my headings?
- Slack has no heading syntax, so `# Heading` becomes bold text on its own line — the closest available emphasis. A horizontal rule becomes a line of box-drawing characters for the same reason: the visual break exists, the semantic element does not.
- Are code blocks left alone?
- Yes, and deliberately. Fenced blocks are lifted out before any other rule runs and put back afterwards, so a `*` or `_` inside your code is never mistaken for emphasis. The language tag on a fence is dropped, since Slack has no syntax highlighting.
- Why are my bullets now a • character?
- Slack renders `- item` as a literal hyphen in many contexts, so a real bullet character is substituted. Nested lists lose their indentation entirely — Slack's mrkdwn has no list nesting, and the API's Block Kit is the only way to get structured lists.
- Do links convert?
- In the API they become `<https://url|text>`, but that form is only interpreted by the API — typed into the message box it appears verbatim. Slack auto-links bare URLs in the composer, so leaving the plain URL is usually the right answer when pasting by hand.
- Why is Slack's syntax not just Markdown?
- Because it predates the convergence on Markdown and uses single asterisks for bold and underscores for italic — the reverse of the usual emphasis rules. That inversion is why pasted Markdown comes out bold where it should be italic.
Common errors and gotchas
- Expecting Markdown bold to work. Slack uses single asterisks, so the double form appears literally.
- Assuming headings exist. Slack has none, and they need converting to bold or removing.
- Losing link syntax, which Slack writes with angle brackets and a pipe rather than brackets and parentheses.
- Expecting tables to render, which Slack does not support at all.
- Overlooking nested list indentation, which Slack renders inconsistently.
Related Converters tools
JSON to YAML
Convert JSON into clean, readable YAML instantly.
YAML to JSON
Convert YAML configuration into valid JSON.
JSON to XML
Convert JSON structures into nested XML markup.
HWB to HEX Converter
Convert an HWB color to HEX.
JSON to SQL
Turn a JSON array of objects into SQL INSERT statements.
CSV to XML
Convert CSV rows into structured XML records.
XML to CSV
Flatten repeated XML records into CSV rows.
INI to JSON
Parse INI config sections and keys into JSON.