Discord Markdown Cheat Sheet
Discord uses a reduced markdown dialect with additions that exist nowhere else, including spoilers, subtext, and masked links that only work inside embeds. This cheat sheet lists every supported syntax with a live sandbox, so you can test formatting before sending it to a channel.
Interactive Markdown Sandbox
How to use the Markdown Cheat Sheet
- Find the syntax you need in the reference list.
- Type it into the sandbox and watch it render as Discord would.
- Copy the working line straight into your message or embed.
Discord Markdown Quick Reference Table
| Style | Syntax Example | Result Preview | Action |
|---|---|---|---|
| Header 1 (Big) | # Big Title |
Big Title | |
| Header 2 (Medium) | ## Medium Title |
Medium Title | |
| Header 3 (Small) | ### Small Title |
Small Title | |
| Subtext (Small Grey) | -# Footnote or small text |
Footnote or small text | |
| Bold | **bold text** |
bold text | |
| Italic | *italic text* or _italic_ |
italic text | |
| Underline | __underline text__ |
underline text | |
| Strikethrough | ~~strikethrough text~~ |
||
| Spoiler (Hidden) | ||hidden secret|| |
hidden secret | |
| Masked Link | [Link Name](https://...) |
Link Name | |
| Inline Code | `console.log('hi')` |
console.log('hi') |
|
| Single Quote | > quote line |
quote line | |
| Multi-line Quote | >>> multi-line quote |
multi-line block | |
| Bullet List | - Item 1\n- Item 2 |
• Item 1 • Item 2 |
|
| Numbered List | 1. First\n2. Second |
1. First 2. Second |
Discord markdown syntax, including the parts that are Discord-only
Discord implements a reduced subset of markdown plus several extensions that exist nowhere else. Bold, italic, strikethrough, inline code, code blocks, block quotes, and headers behave roughly as they do elsewhere. The Discord-specific additions are spoilers written with double pipes, subtext written with a hyphen and hash prefix, and masked links, which render link text over a URL but only inside embeds, not in ordinary messages.
Two limits shape how much formatting you can practically use. A standard message is capped at 2,000 characters, doubled to 4,000 with Nitro, and every markdown symbol counts toward that total. Embed descriptions allow up to 4,096 characters with a 6,000 character ceiling across all embed elements combined, which is why long formatted announcements are usually posted through a bot or webhook rather than typed directly.
Nesting is where most formatting breaks. Combining bold and italic means wrapping one set of symbols entirely inside the other, and mismatched counts leave visible asterisks in the sent message. Code blocks are the exception to everything: markdown inside a code block is not parsed, which makes triple backticks the reliable way to show syntax literally or to preserve the spacing that ASCII art depends on.
Common problems and fixes
- Asterisks appear in the sent message
The wrapper symbols are unbalanced. Count them on both sides, and nest one style fully inside the other rather than interleaving them. - A masked link posts as raw text
Masked links only work inside embeds. In an ordinary message, post the bare URL or send the embed through a webhook. - Underscores inside a filename turn text italic
Discord reads them as formatting. Wrap the filename in backticks so it is treated as code.
Frequently asked questions
How do you make small subtext in Discord?
Type -# at the beginning of any line (e.g. -# This is small text) to render small subtext.
How do Discord header tags work?
Type # for Header 1, ## for Header 2, and ### for Header 3 at the start of a line.
How do you make hidden spoiler text in Discord?
Wrap your text in double vertical bars like ||spoiler message||.
Can you create masked hyperlinks in Discord?
Yes! In embeds, webhooks, and bot messages, use [Link Text](https://example.com) format.
How do you quote text in Discord?
Type > at the start of a single line, or >>> for a multi-line blockquote.
Does Discord support tables in markdown?
No. Discord does not render markdown tables. Use a code block with aligned columns, or build the layout as embed fields.
How do I write a multi-line code block with syntax highlighting?
Open with triple backticks followed immediately by a language name such as js or python, then start your code on the next line.
What is subtext used for?
Subtext renders smaller and dimmer than body text, which suits captions, disclaimers, and footnotes under an announcement.