The complete Discord text formatting reference: bold, italic, underline, spoilers, code blocks with syntax highlighting, headers, quotes, timestamps, colored text, and every workaround — with copy-paste examples
Updated July 2026 — includes headers, subtext, timestamps, and ANSI colors
Discord uses a subset of Markdown for text formatting. Wrap text in **bold**, *italic*, __underline__, ~~strikethrough~~, or ||spoiler||. Use # for headers, -# for small subtext, > for quotes, and triple backticks for code blocks. Every supported style with examples is below.
Try It Live: Discord Markdown Previewer
Type any Discord Markdown below and see how the message renders — no need to spam a test channel. Click the black spoiler bars to reveal them, just like in Discord.
How it looks in Discord
M
MarkdownToolsToday at 9:41 AM
Server update
Deploy went out successfully tonight. Details in the private channel.
Remember: no pings after midnight
Posted by the automation bot
const status = "deployed";
Need to convert? Paste standard Markdown (or an AI answer) and get Discord-ready text with tables and headings normalized.
Discord supports bold, italic, underline, and strikethrough — and you can stack them by nesting the markers. Underline with double underscores is Discord-specific: in standard Markdown, __text__ means bold. For every combination, mobile tips, and common mistakes, see the dedicated Discord text formatting guide.
Bold
Wrap text in double asterisks
Syntax
**bold text**
Looks like in Discord
bold text
Italic
Wrap text in single asterisks (or single underscores)
Syntax
*italic text*
Looks like in Discord
italic text
Underline
Wrap text in double underscores (Discord-specific)
Syntax
__underlined text__
Looks like in Discord
underlined text
Strikethrough
Wrap text in double tildes
Syntax
~~strikethrough~~
Looks like in Discord
strikethrough
Bold + Italic
Three asterisks combine bold and italic
Syntax
***bold and italic***
Looks like in Discord
bold and italic
Underline + Bold
Nest the markers to stack styles
Syntax
__**underlined bold**__
Looks like in Discord
underlined bold
Underline + Italic
Underline plus italic
Syntax
__*underlined italic*__
Looks like in Discord
underlined italic
All combined
Underline, bold, italic, and strikethrough together
Syntax
__***~~everything~~***__
Looks like in Discord
everything
Discord Code Blocks
Use single backticks for inline code and triple backticks for multi-line code blocks. Add a language name straight after the opening backticks to get syntax highlighting — Discord uses highlight.js under the hood. The Discord code block guide covers every language identifier, diff blocks, and fixes for common mistakes.
Inline code
Wrap short snippets, commands, or file names in single backticks.
Use the `/deploy` command
Multi-line code block
Three backticks before and after. Best for logs, terminal output, or anything that must keep its spacing.
```
Paste logs, commands,
or config here
```
Code block with syntax highlighting
Put the language name immediately after the opening backticks — no space.
```js
const status = "deployed";
console.log(status);
```
Python example
Discord uses highlight.js, so most common language identifiers work.
Need a code block outside Discord? Use the Markdown code block generator for documentation, READMEs, and static site content.
Discord Spoiler Tags
Wrap text in double vertical bars to hide it behind a black spoiler box. Readers click to reveal it. You can spoiler a single word, a whole message, or combine spoilers with other formatting. For image spoilers, mobile steps, and etiquette, see the Discord spoiler tag guide.
Basic spoiler
Text stays hidden until clicked.
||the killer is the butler||
Spoiler with formatting
Wrap the fully formatted phrase in spoiler bars so the whole thing stays hidden.
||**major spoiler warning**||
Spoiler image or attachment
Rename the file to start with SPOILER_ before uploading, or use the spoiler option in the upload menu.
SPOILER_filename.png
Discord Headers & Subtext
Discord supports three header sizes plus small muted subtext. The # must be at the start of the line with a space after it.
Header 1 (largest)
# Big header
Header 2
## Medium header
Header 3
### Small header
Subtext (small muted text)
Start the line with -# and a space. Great for footnote-style asides.
-# This renders as small gray subtext
Discord Lists
Bulleted and numbered lists both work. Indent with spaces to nest items one level.
Bulleted list
- First item
- Second item
* Also works with asterisks
Numbered list
1. Step one
2. Step two
3. Step three
Nested list
Add a space (or two) before the dash to nest. Discord supports one level of nesting.
- Parent item
- Indented child item
- Next parent
Discord Quotes
Use a greater-than sign for a single-line quote or three for a multi-line quote block that runs to the end of the message.
Single-line quote
Put > and a space at the start of the line.
> This line is quoted
Multi-line quote block
>>> quotes all remaining text in the message.
>>> Everything after this
is quoted
until the message ends
Quote a command or answer
Quotes combine cleanly with inline code and other formatting.
> Use `/deploy preview` before merging
Discord Masked Links
Masked links use standard Markdown link syntax to show custom text instead of the raw URL. Wrap a URL in angle brackets to stop Discord from generating an embed preview.
Dynamic timestamps show the correct time in every reader's local timezone. The format is <t:UNIX_TIMESTAMP:STYLE>. Use the Discord timestamp generator to build one from a date picker, or grab a Unix timestamp and pick a style:
Syntax
Example output
Style
<t:1751328000:d>
07/01/2026
Short date
<t:1751328000:D>
July 1, 2026
Long date
<t:1751328000:t>
1:00 AM
Short time
<t:1751328000:T>
1:00:00 AM
Long time
<t:1751328000:f>
July 1, 2026 1:00 AM
Short date/time (default)
<t:1751328000:F>
Wednesday, July 1, 2026 1:00 AM
Long date/time
<t:1751328000:R>
in 2 hours
Relative time
Escaping Markdown in Discord
To show Markdown characters literally instead of formatting the text, escape them with a backslash.
Escape asterisks
Renders as *not italic* with visible asterisks.
\*not italic\*
Escape underscores
Useful for file_names_with_underscores.
\_\_not underlined\_\_
Show backticks in inline code
Wrap in double backticks to display a literal backtick inside code.
``use `backticks` here``
Tables in Discord (Not Supported + Workarounds)
Discord does not render Markdown tables — pipe syntax comes out as plain text. Three workarounds:
Code block: paste the table inside triple backticks so the monospace font keeps columns aligned.
Embed fields: bots and webhooks can send embeds with inline fields that look like a small table.
Convert it: paste your Markdown into the Markdown to Discord converter to turn tables into a readable monospace block automatically.
Table inside a code block
Pad the columns with spaces — the monospace font keeps everything aligned.
```
Name Role Status
Alice Admin Online
Bob Mod Away
```
Colored Text in Discord (ANSI Trick)
Discord's code blocks support ANSI escape codes, which lets you post colored text. Create a code block with the language set to ansi and wrap text in escape sequences. The escape character (ESC, Unicode U+001B) is included automatically when you copy the examples below, so they paste straight into Discord. Colors render on desktop and web, but not on mobile. To build your own combination visually, use the Discord colored text generator.
Red warning text
```ansi
ESC[31mThis text is redESC[0m
```
Bold green success message
```ansi
ESC[1;32mDeploy succeededESC[0m
```
Yellow text on indigo background
```ansi
ESC[45;33mHighlighted lineESC[0m
```
Text colors
[30m
Gray
[31m
Red
[32m
Green
[33m
Yellow
[34m
Blue
[35m
Pink / Magenta
[36m
Cyan
[37m
White
Background colors
[40m
Dark blue
[41m
Orange
[42m
Marble blue
[43m
Grey-turquoise
[44m
Gray
[45m
Indigo
[46m
Light gray
[47m
White
Combine format and color with a semicolon, e.g. [1;31m for bold red. Use [0m to reset back to the default style, [1m for bold, and [4m for underline.
Not Supported in Discord
Markdown tables
Images embedded in text
Footnotes
Task lists (checkboxes)
Horizontal rules
HTML tags
Discord Formatting Tips
Edit to fix formatting
Sent a message with broken Markdown? Press the up arrow to edit your last message instead of reposting.
Shift + Enter for new lines
Use Shift + Enter to add line breaks without sending — essential for multi-line code blocks and quotes.
Big emoji
Send only emojis (no text, up to 27) and Discord displays them at jumbo size.
Highlight the syntax toolbar
Select text in the message box and Discord shows a formatting toolbar — handy when you forget the exact markers.
Troubleshooting: Discord Formatting Not Working
Nine times out of ten, broken Discord Markdown comes down to a stray space or a mobile-only limitation. The most common problems and their fixes:
Formatting not working at all
Check for spaces just inside the markers: ** bold ** fails, **bold** works. The marker must touch the first and last character of the text it wraps.
Syntax highlighting shows no colors on mobile
That is a Discord limitation, not a typo — the mobile apps render code blocks in monospace but skip highlight.js colors. Your block will still look right for desktop and web readers.
ANSI colored text shows escape codes instead of colors
Colored ANSI blocks only render on Discord desktop and web. On mobile, readers see the raw codes. There is no fix — use it in desktop-heavy servers.
Header renders as a literal # symbol
The # must be the first character of the line, followed by a space. Headers also do not work mid-message on some clients — put them on their own line at the start.
Code block language not highlighting
The language identifier must come immediately after the opening backticks with no space: ```python works, ``` python does not. Check the identifier against the language list above.
Underscores in file_names turning italic
Escape them with backslashes (file\_name) or wrap the name in backticks as inline code, which disables all formatting inside.
Frequently Asked Questions
What Markdown does Discord use?
Discord uses its own lightweight subset of Markdown, rendered by a library called simple-markdown with Discord-specific additions. It supports bold, italic, underline, strikethrough, spoilers, inline code, code blocks with highlight.js syntax highlighting, headers, lists, quotes, masked links, and timestamps — but not tables, images, or HTML.
How do I format text in Discord?
Wrap text in Markdown markers: **bold**, *italic*, __underline__, ~~strikethrough~~, or ||spoiler||. Use # for headers, -# for small subtext, > for quotes, and backticks for code. You can stack styles, for example ***__bold italic underline__***.
How do I make a code block in Discord?
Put three backticks (```) on the line before and after your text. For a single word or command inside a sentence, wrap it in one backtick instead. For syntax highlighting, add a language name right after the opening backticks, for example ```python or ```js.
How do I make a spoiler in Discord?
Wrap your text with double vertical bars: ||spoiler text||. The text appears as a black box until someone clicks it. You can also mark images and attachments as spoilers by starting the file name with SPOILER_ or using the spoiler option when uploading.
How do I get colored text in Discord?
Use an ANSI code block: type three backticks followed by ansi, then wrap your text in ANSI escape codes like [31m for red or [32m for green, and end the block with three backticks. Colored ANSI text renders on the Discord desktop and web apps but not on mobile.
Does Discord support Markdown tables?
No, Discord does not render Markdown tables. The common workarounds are to paste the table inside a code block so the columns stay aligned in monospace, use inline fields in an embed via a bot or webhook, or convert the table with the Markdown to Discord converter.
How do I make text bold in Discord?
Wrap the text in double asterisks: **your text**. For bold and italic together use three asterisks: ***your text***.
How do I underline text in Discord?
Wrap the text in double underscores: __your text__. Underline is Discord-specific and is not part of standard Markdown, where double underscores mean bold.
How do I make small text in Discord?
Start the line with -# followed by a space: -# your text. Discord renders it as smaller, muted subtext under your message.
How do I stop Discord from formatting my text?
Escape the special character with a backslash: \*not italic\*. To show a literal backtick inside inline code, wrap the snippet in double backticks instead.
Why isn't my Discord formatting working?
The most common cause is a space between the marker and the text: ** bold ** fails while **bold** works. Other frequent culprits: the code block language identifier has a space after the backticks, the # of a header is not at the start of the line, or you are viewing ANSI colors or syntax highlighting on mobile, where Discord does not render them.