Phantom

Free reference

Discord Markdown Cheatsheet

Every formatting marker Discord supports — bold, italic, headers, quotes, lists, spoilers, code blocks, masked links, mentions, role chips, custom emoji, slash command references, dynamic timestamps. Click any line to copy.

Live playground

Type markdown — see exactly how Discord renders it.

Text formatting

Bold
**bold text**
Italic (asterisk)
*italic text*
Italic (underscore)
_italic text_
Bold italic
***bold italic***
Underline
__underline__
Strikethrough
~~struck through~~
Spoiler
||hidden until clicked||
Combined formats
__***bold italic underline***__ ~~with strike~~

Headers + subtext

Heading 1
# Big heading
Heading 2
## Section heading
Heading 3
### Subsection heading
Subtext
-# small grey caption

Lists + quotes

Bullet list
- one
- two
- three
Numbered list
1. first
2. second
3. third
Nested bullet
- top
  - nested
Single-line quote
> quoted line
Multi-line quote
>>> first line
second line
third line

Code

Inline code
`monospaced code`
Code block
```
plain code block
```
Code block (JS)
```js
console.log('hello');
```
Code block (Python)
```py
print('hello')
```
Code block (Diff)
```diff
- old line
+ new line
```

Mentions + chips

User mention
<@123456789012345678>
@username
Channel mention
<#123456789012345678>
#general
Role mention
<@&123456789012345678>
@Moderator
@everyone
@everyone
@everyone
@here
@here
@here
Slash command link
</play:1234567890>
/play
Slash subcommand
</giveaway create:1234567890>
/giveaway create
Custom emoji
<:phantom:1234567890>
P
Animated emoji
<a:phantom_anim:1234567890>
P
Standard emoji
:smile:
😄

Timestamps

Short time
<t:1735689600:t>
18:00
Long time
<t:1735689600:T>
18:00:00
Short date
<t:1735689600:d>
31/12/2026
Long date
<t:1735689600:D>
31 December 2026
Short date-time
<t:1735689600:f>
31 December 2026 18:00
Long date-time
<t:1735689600:F>
Friday, 31 December 2026 18:00
Relative (live)
<t:1735689600:R>
in 3 days

Escapes + gotchas

Escape a marker
\*not italic\*
Escape a backtick
\`literal backtick\`
Empty line in quote
> first paragraph
> 
> second paragraph
Forced newline (use Shift+Enter in chat)
line one
line two

Mention, role, channel, custom emoji, slash command and timestamp tokens render as live chips inside Discord — the previews above mirror Discord's styling. The IDs in the source are placeholders; swap in your own server's IDs.

Quick tips for Discord markdown

  1. 1

    Headers reset on every newline.

    Discord's #, ##, ### only apply to the line they start. Use them for short titles in announcements; pair with -# subtext for byline / metadata.

  2. 2

    Masked links don't work in user messages.

    [text](url) renders inside embeds and webhook content, in DMs from a bot, and in messages bots post via the API. In a message you type yourself, the markdown stays raw — Discord made this trade-off to stop people hiding malicious URLs behind innocent-looking text.

  3. 3

    Slash command refs need the command's ID.

    The format is </name:command_id> — the ID is the snowflake of the registered application command. Subcommands use </parent sub:id>. Phantom shows you these IDs in the dashboard so you can copy them straight into pinned how-to messages.

  4. 4

    Timestamps render in each viewer's timezone.

    Use <t:UNIX:STYLE> for events. The :R style ("in 3 days", "5 minutes ago") updates live. Build them with the Discord Timestamp Generator.

Frequently asked

Why doesn't [text](url) render in my message?

Masked links ([label](https://…)) only render in embeds, webhooks and bot-sent messages — not in messages you type yourself. Inside a regular user message, the markdown stays literal. To ship a polished embed with masked links, use the Discord Embed Creator.

How do I underline + bold at the same time?

Wrap the inner format inside the outer one: __**bold + underlined**__. Add italics with a third pair: __***bold italic underlined***__. Order doesn't matter as long as the markers nest cleanly.

How do I escape a marker?

Backslash before the marker character: \\*not italic\\*, \\`literal backtick\\`. Inside fenced code blocks no escaping is needed — the contents render as plain text.

Can I make text any colour?

Not natively in messages — Discord doesn't ship a colour token. The closest workaround is the diff code block (red minus / green plus lines) or the fix code block (yellow). For real colour, use embeds: each embed has a single accent colour you can set on the left bar. The Embed Creator handles that.

How do I add an empty line in a quote?

Put a > on its own line between paragraphs. A truly empty line breaks the quote and starts a new block. The >>> multi-line variant lets blank lines stay inside the quote without resetting it.

Does Phantom format my announcements with markdown?

Yes — every place Phantom posts (welcomes, levelling messages, ticket transcripts, giveaway embeds, partnerships, automod logs) accepts the full markdown set on this page plus mention / channel / role / timestamp tokens. Install Phantom — free during early access.

Want every Phantom message to come out perfectly formatted by default?

Phantom does this — and 30 more.

One bot, one dashboard. Moderation, automod, tickets, security, levelling, economy, giveaways, partnerships — every feature your Discord server needs without juggling four different bots.

Free during early access.

Moderation

Cases, automod, audit

Security

Lockdown, anti-raid

Tickets

Panels, AI auto-assist

Levelling

XP, roles, leaderboard