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.

[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.

Try the font style copy and paste tool →