Discord markdown cheat sheet
Discord uses a dialect of markdown — most of the standard syntax plus a few inventions of its own (underline, spoilers, subtext) and a few things missing (tables, images).
| Effect | Type this | Notes |
|---|---|---|
| Italic | *italic* or _italic_ | |
| Bold | **bold** | |
| Bold italic | ***bold italic*** | |
| Underline | __underline__ | Discord-specific — in standard markdown double underscores mean bold. |
| Strikethrough | ~~strikethrough~~ | |
| Spoiler | ||hidden until clicked|| | Discord-only. Works on text and attachments. |
| Inline code | `code` | |
| Code block | ```js
code here
``` | Language tag after the opening backticks enables syntax highlighting. |
| Big header | # Header | Three levels: #, ##, ###. Needs the space, at line start. |
| Subtext | -# small gray text | Smaller, dimmed line — the opposite of a header. |
| Quote | > quoted line | >>> quotes everything until the end of the message. |
| Bulleted list | - item or * item | |
| Numbered list | 1. item | |
| Masked link | [shown text](https://example.com) | Suppress the embed by wrapping the URL in < >. |
How is Discord markdown different from standard markdown?
Three real differences trip people up. First, __double underscores__ underline on Discord but mean bold everywhere else. Second, Discord renders single-tilde ~strikethrough~ as well as the standard double tilde. Third, several standard features simply don't exist in messages: tables, task-list checkboxes, embedded images via , and horizontal rules. Discord adds its own extras instead: ||spoilers||, -# subtext, and <t:timestamp> tags that render in each reader's timezone.
How do you show markdown characters literally?
Escape with a backslash: \*not italic\*. To disable an auto-embedding link preview, wrap the URL in angle brackets: <https://example.com>.
Related
Full standard syntax: markdown cheat sheet · Slack formatting · strikethrough guide · underline guide