Text Formatting on Discord: Bold, Spoiler, Heading, and Code Block
Learn how to format text in Discord messages with bold, italics, underline, strikethrough, spoilers, headings, subtext, lists, quotes, code blocks, and masked links, complete with copyable examples.
This article was translated automatically from the Turkish original. Read the Turkish original

In this article
- Bold, italic, underline, and strikethrough text
- Hiding answers or surprises with spoilers
- Structuring messages with headings and subtext
- Bulleted lists, numbered lists, and blockquotes
- Inline code, code blocks, and syntax highlighting
- Masked links: Hiding URLs behind text
- Disabling formatting when you don't want it
- Combining everything in an announcement message
- Frequently asked questions
At a glance
Discord uses a Markdown-like syntax in messages: **bold**, *italic*, __underline__, ~~strikethrough~~, and ||spoiler||. Adding # at the start of a line creates a heading, while -# creates small subtext. Use backticks for code and [text](url) for links. You can copy the examples below directly into your own messages.
When an announcement, rules list, or guide message is sent in plain text, it becomes hard to read. Discord's formatting syntax solves this problem. All syntax in this guide is based on Discord's Markdown Text 101 support article and Discord's formatting blog post. Formatting symbols are the same across desktop, browser, and mobile applications, though keyboard shortcuts are exclusive to desktop and web.
Bold, italic, underline, and strikethrough text
These four styles work by wrapping text in identical symbols on both sides. Do not leave a space between the symbol and the text.
| Style | Syntax | Note |
|---|---|---|
| Bold | **bold text** | Two asterisks |
| Italic | *italic text* or _italic text_ | Single asterisk or single underscore |
| Bold and italic | ***bold italic*** | Three asterisks |
| Underline | __underlined text__ | Two underscores |
| Strikethrough | ~~strikethrough text~~ | Two tildes |
You can combine styles. Place the underline markers on the outside and other symbols on the inside:
__**underlined and bold**__
__*underlined and italic*__
__***underlined, bold, and italic***__You can also highlight text and use shortcuts on desktop and web apps. According to Discord's blog post, Ctrl/Cmd + B bolds, Ctrl/Cmd + I italicizes, and Ctrl/Cmd + U underlines selected text. On mobile, you type the formatting characters manually.
A word of caution: in many Markdown applications, two underscores indicate bold text. In Discord, however, it produces underlined text. The appearance might change if you copy text from Discord to another application.
Hiding answers or surprises with spoilers
If you enclose text between two vertical bars (pipes), it gets hidden behind a gray box. Readers will see the text only after clicking on the box.
At the end of the episode ||the main character rejoins the team||.According to Discord's blog post, wrapping a URL in spoiler tags also hides the link preview. The Spoiler Tags article notes that the same syntax applies on mobile. The support article also mentions that code blocks disable spoiler tags: any || inside a code block remains plain text.
If a new game or TV show comes out and you want to establish rules on what should be hidden in which channel, check out our guide on setting up a Discord spoiler policy.
Structuring messages with headings and subtext
Placing one, two, or three # symbols at the beginning of a line turns that line into a heading. One hash is the largest heading, and three hashes is the smallest. Starting a line with -# creates small, faded subtext.
# Large heading
## Medium heading
### Small heading
-# This line appears as small subtext.Two details are important. The symbol must be at the very start of the line, and there must be a space after the symbol. Typing #Announcement won't create a heading; you must type # Announcement.
Subtext is ideal for source notes, short disclaimers, or "last updated" info. Avoid placing important warnings in subtext, as its small, faded appearance makes it easy to miss.
Bulleted lists, numbered lists, and blockquotes
According to the support article, you can create bulleted lists by placing a hyphen (-) or asterisk (*) followed by a space at the start of a line. Numbered lists use the 1. format, which also requires a space after the number.
- Be respectful
- No self-promotion
- Invite links count as promotion
1. Read the rules
2. Grab your role from the role channel
3. Introduce yourselfAccording to the support article, you can indent a list item by adding two spaces before the hyphen. Discord's blog post highlights a second method: typing two hyphens separated by a space (- -).
For blockquotes, place a > followed by a space at the start of the line. A single angle bracket quotes only that line, while >>> places every line after that point into a single blockquote.
> This line is a quote.
This line is normal text.
>>> This line and
all lines below it
are part of a single blockquote.Inline code, code blocks, and syntax highlighting
To highlight a command name or file path, wrap the text in single backticks (`). For multi-line code, use triple backticks. If you add the language name immediately after the opening backticks, Discord will apply syntax highlighting.
The configuration file is stored in `config.json`.
```json
{
"prefix": "!",
"logChannel": "mod-logs"
}
```
```js
console.log("Hello Discord");
```No formatting is applied inside code blocks. Asterisks, underscores, and spoiler tags appear exactly as plain text. This makes code blocks the easiest way to show someone "how to write" a specific format.
Masked links: Hiding URLs behind text
You can hide a long URL behind readable display text. Place the text to display inside square brackets, and the destination URL inside parentheses:
For full rules, check out the [rules page](https://example.com/rules).According to Discord's blog post, anyone clicking a masked link will first see a popup warning showing the destination address, allowing them to decide whether to open it. This warning is a built-in security measure. When sharing masked links on your own server, ensure the anchor text accurately reflects where the URL leads. Hiding malicious links behind misleading text is a common technique used by scammers.
Disabling formatting when you don't want it
Sometimes you want asterisks or underscores to display literally. For example, typing file_name_new might trigger italics due to the underscores. There are two ways to prevent this:
- Wrap the text in inline code:
`file_name_new`. Formatting does not run inside code. - Place a backslash before the symbol:
\*asterisks\*. This method is frequently recommended in Discord community forums.
Combining everything in an announcement message
The example below combines headings, lists, bold text, spoilers, and subtext into a single message. You can copy and adapt it for your own server.
# Weekend Tournament
**Date:** Saturday evening
**Registration:** In the #tournament-signup channel
## Rules
- Teams up to **5 players** max
- Any team caught cheating will be __disqualified__
- Prize: ||a surprise role and custom color||
-# Feel free to message staff if you have any questions.If you are drafting server rules from scratch, our enforceable server rules guide will help you organize sections. If you want your rules to stay stuck at the bottom of the channel, check out our guide on setting up sticky messages.
If you are sending embeds via a bot, there is a limitation worth knowing. In tests conducted by the VeyroBot team on October 9, 2026 on a test server, inline formatting like bold and italics worked inside embed titles. However, links and timestamps worked only in descriptions and field values, remaining plain text inside titles. This distinction is mirrored in VeyroBot's Message Builder preview.
Frequently asked questions
Why isn't my formatting working?
The most common cause is missing or extra spaces. Headings, subtext, lists, and quote symbols require a space after the character. Bold and italic symbols, on the other hand, must touch the text directly: ** bold ** might not work, while **bold** will. Also, if text is inside a code block, no formatting will be applied.
How do I format text on mobile?
The symbols are identical in the mobile app. The main difference is the absence of keyboard shortcuts, meaning you have to type the symbols manually.
Can I use four hashes for a heading?
The official support article only defines headings with one, two, or three hashes. For smaller text, use the -# subtext syntax.
Last updated: October 9, 2026. Syntax compiled from Discord's Markdown Text 101 and Spoiler Tags support articles, as well as Discord's formatting blog post. Details may vary as the Discord interface evolves.