Discord Text Formatting: The Complete Markdown Guide
Discord formats messages with a version of Markdown: you wrap text in symbols, and Discord renders it as bold, italic, a spoiler, a code block, and more. This guide lists every common Discord text formatting code, shows how to combine them, and explains where Markdown stops working and Unicode fonts take over.
Quick reference
| Effect | Type this | Notes |
|---|---|---|
| Bold | **text** |
|
| Italic | *text* or _text_ |
|
| Bold italic | ***text*** |
|
| Underline | __text__ |
Two underscores on each side |
| Strikethrough | ~~text~~ |
|
| Spoiler | ||text|| |
Hidden until clicked or tapped |
| Inline code | `text` |
Monospace, no other formatting inside |
| Code block | ```text``` |
Multi-line; add a language name for highlighting |
| Block quote | > text |
Quotes one line |
| Multi-line quote | >>> text |
Quotes everything after it in the message |
| Large header | # text |
Must start a line |
| Medium header | ## text |
Must start a line |
| Small header | ### text |
Must start a line |
| Subtext | -# text |
Small, muted line |
| Bulleted list | - text or * text |
Indent for nested items |
| Numbered list | 1. text |
|
| Masked link | [label](https://example.com) |
Shows the label instead of the URL |
Basic text styles
Bold, italic, and underline
Wrap text in two asterisks for bold and one asterisk or underscore for italic. Two underscores on each side create underline, which standard Markdown does not have but Discord supports.
You can stack them:
***bold italic***__*underline italic*____**underline bold**____***underline bold italic***__
Strikethrough
Two tildes on each side, ~~like this~~, draw a line through the text. It is useful for corrections and jokes.
Spoilers
Two vertical bars on each side, ||like this||, hide text behind a dark bar until someone clicks or taps it. You can also mark an uploaded image as a spoiler in the upload dialog.
Structure: headers, subtext, and lists
Headers use one to three hash signs at the start of a line, followed by a space. They make announcements and rules posts easy to scan. Headers only work at the beginning of a line.
Subtext uses -# followed by a space. It shows a small, gray line, which is handy for footnotes, sources, or “edited” notes.
Lists use a hyphen or asterisk for bullets and a number with a period for numbered items. Indent a line with spaces to nest it under the item above.
Code and quotes
Inline code and code blocks
Single backticks around text create inline code. Three backticks on their own lines create a code block, which keeps spacing and line breaks exactly as typed. Add a language name right after the opening backticks, such as js or python, for syntax highlighting.
Formatting symbols inside code are shown literally, which also makes code blocks a reliable way to show someone Markdown syntax without it rendering.
Quotes
Start a line with > to quote that line. Start with >>> to quote everything after it in the same message. Quotes are good for replying to a specific part of a long message.
Masked links
[label](https://example.com) shows clickable text instead of a raw URL. Discord shows a warning when users click links to some external sites, and it may restrict masked links in some contexts to prevent misleading labels. Make sure your label honestly describes the destination.
Escaping formatting
To show a symbol literally, put a backslash before it: \*not italic\*. You can also wrap text in backticks to show it as code.
Where Markdown works, and where it does not
Markdown renders in messages and in some profile and server fields. It does not change how your name looks. That is where Unicode text styles come in.
| Place | Discord Markdown | Unicode font styles |
|---|---|---|
| Messages and threads | Yes | Yes |
| About Me | Yes, in our testing | Yes |
| Display name | No | Yes |
| Server nickname | No | Yes |
| Username | No | No (lowercase letters, numbers, _ and . only) |
| Channel names | No | Some characters; may be restricted |
Unicode styles are separate characters that look like bold, script, Gothic, or small caps letters. Because they are characters, not formatting, they appear in display names and nicknames where Markdown cannot reach. If you want a styled name, use fonts for Discord, which covers names and nicknames in detail.
Markdown vs. Unicode: which should you use?
Use Markdown in messages. It is real formatting: screen readers read it as normal words, search finds it, and anyone can copy it as plain text.
Use Unicode styles in names and in places Markdown does not render. Keep them readable, because other members need to recognize and mention you. Styles from the small caps generator and the bold text generator stay readable in member lists. Heavy effects from the zalgo text generator are often banned in names by server rules.
Common problems
- Formatting does not apply: check that there is no space between the symbol and the text, as in
** text**. - Header shows as plain text: a header must start the line and needs a space after the hash signs.
- Underscores in names break italics: escape them with a backslash or put the text in backticks.
- List does not render: add a space after the hyphen or the number and period.
Summary
Discord text formatting covers bold, italic, underline, strikethrough, spoilers, headers, subtext, lists, code, quotes, and masked links. Use it in messages, where it is accessible and searchable. For display names and nicknames, where Markdown does not render, use Unicode styles sparingly and keep your name readable.