Discord Markdown 101: The Complete Reference Guide
Discord uses a customized subset of CommonMark with exclusive extensions like spoiler tags (||), subtext (-#), ANSI colored code blocks, and dynamic UNIX timestamps. Whether you run a community server, develop a Discord bot, or want to make your chat messages stand out, this guide provides the exact syntax for every Discord formatting feature.
1. Text Styling & Emphasis
| Style | Markdown Syntax | Rendered Output |
|---|---|---|
| Italics | *italics* or _italics_ | Italic text |
| Bold | **bold** | Bold text |
| Bold Italics | ***bold italics*** | Bold italic text |
| Underline | __underline__ | Underlined text |
| Underline Italics | __*underline italics*__ | Underline italic text |
| Underline Bold | __**underline bold**__ | Underline bold text |
| Underline Bold Italics | __***underline bold italics***__ | Underline bold italic text |
| Strikethrough | ~~strikethrough~~ | Strikethrough text |
| Escape Formatting | \*not italic\* | *not italic* (shows literal asterisks) |
2. Headers, Subtext & Structure
Discord supports three levels of headers and a special subtext modifier. Headers must start at the very beginning of a line followed by a space:
| Element | Syntax | Notes |
|---|---|---|
| Header 1 (Large) | # Large Heading | Biggest header size with bottom divider line. |
| Header 2 (Medium) | ## Medium Heading | Medium section heading. |
| Header 3 (Small) | ### Small Heading | Compact bold heading. |
| Subtext | -# Small subtext message | Muted, smaller font size. Ideal for footer disclaimers, rules, and timestamps. |
| Bulleted List | - Item or * Item | Indent with spaces for nested sub-bullets. |
| Numbered List | 1. First item | Always starts numbering from the first integer. |
3. Spoilers, Blockquotes & Masked Links
Spoiler Tags (||hidden||)
Wrap sensitive spoilers, answers, or plot twists in double pipes. On Discord desktop and mobile, users must click the blacked-out bar to reveal the hidden contents:
||The killer in the movie was the butler!|| Single-Line vs Multi-Line Blockquotes
Use > for single-line quotes and >>> to wrap all remaining text in a continuous blockquote:
> Single line quote
>>> Everything from this line to the end of the message will be quoted! Masked Clickable Links & Suppressing Embeds
Mask links using [Link Title](https://url). If you want to post a bare link without triggering Discord's large rich preview embed box, wrap the URL in angle brackets:
Check out [RunOfflineTools](https://runofflinetools.com/)
Suppress preview box: <https://runofflinetools.com/> 4. Dynamic Discord Timestamps
Instead of typing "Starts at 5 PM EST" (which confuses international server members), use Discord dynamic timestamps (<t:UNIX:STYLE>). Discord automatically calculates and displays the exact time in every member's local time zone:
| Format Tag | Style Code | Rendered Example |
|---|---|---|
<t:1759140000:R> | Relative Time (:R) | in 2 hours / 5 minutes ago |
<t:1759140000:t> | Short Time (:t) | 9:41 AM |
<t:1759140000:T> | Long Time with Seconds (:T) | 9:41:30 AM |
<t:1759140000:d> | Short Date (:d) | 09/29/2026 |
<t:1759140000:D> | Long Date (:D) | September 29, 2026 |
<t:1759140000:f> | Short Date/Time (:f) | September 29, 2026 9:41 AM |
<t:1759140000:F> | Full Date/Time with Day (:F) | Tuesday, September 29, 2026 9:41 AM |
5. Discord Code Block Syntax Highlighting
By declaring the language name immediately after the opening triple backticks (```python), Discord colors code keywords, strings, variables, and numbers:
Frequently Asked Questions
How do you format bold, italics, underline, and strikethrough on Discord?
Discord uses markdown characters around your text: Bold uses double asterisks (**bold**), Italics uses single asterisks (*italics*) or single underscores (_italics_), Underline uses double underscores (__underline__), and Strikethrough uses double tildes (~~strikethrough~~). You can combine them, such as __**underline bold**__.
How do you make spoiler text on Discord?
Wrap your text in double vertical bars (||spoiler text||) or type /spoiler before your message. When posted, Discord renders a blacked-out box that reveals the hidden text only when clicked or tapped.
How do you write small subtext (-#) in Discord?
Place '-# ' (dash, hash, followed by a space) at the beginning of any line. Discord will render that entire line in small, muted gray subtext, which is perfect for disclaimers, timestamps, and footer notes.
How do you create colored text in Discord messages?
Discord supports colored text inside ANSI code blocks using the syntax ```ansi followed by ANSI escape codes (e.g. [31m for red, [32m for green, [34m for blue, [33m for yellow, [35m for pink, [36m for cyan). Our tool includes an automatic ANSI Color Generator to generate these codes with one click.
How do Discord dynamic timestamps (<t:timestamp:R>) work?
Discord converts UNIX epoch seconds into dynamic, localized timestamps formatted as <t:EPOCH:STYLE>. For example, <t:1759140000:R> renders relative countdowns (e.g., 'in 2 hours' or '3 days ago') adjusted automatically to each viewer's local timezone.
How do you make clickable masked links in Discord?
Use standard markdown link syntax: [Display Text](https://example.com). Note that masked links work in Discord server channels, threads, and bot webhooks. If you want to suppress the automatic web preview embed, wrap the URL in angle brackets: <https://example.com>.
Which syntax highlighting languages are supported in Discord code blocks?
Discord supports over 20 programming and markup languages for code block syntax highlighting using triple backticks (```language), including python, javascript, typescript, bash, json, yaml, cpp, csharp, css, html, diff, markdown, and ansi.
Does this Discord Markdown tool work completely offline?
Yes, 100% offline and client-side. All markdown parsing, ANSI generation, and live Discord chat simulations execute locally in your web browser with zero server transmission.