Discord Markdown: Every Text Formatting Code
Discord formats messages with its own take on Markdown: wrap text in a few symbols and it turns bold, hides behind a spoiler, or becomes a heading. Here is every code that works in a Discord message, and the details that trip people up.
Bold, italic, underline and strikethrough
Wrap text in *single asterisks* or _underscores_ for italics, **double asterisks** for bold, and ***three*** for both. __Double underscores__ underline and ~~two tildes~~ strike through. They combine, so __**text**__ is bold and underlined.
Check how any of it will look before you send it with the Discord Markdown Previewer.
Spoilers
Put ||two pipes|| on each side of text to hide it until someone clicks it. Inside a code block the pipes show as plain text, because code blocks switch all formatting off.
Headers and subtext
Start a line with # for a big header, ## for a smaller one, or ### for the smallest, with a space after the hashes. Start a line with -# for subtext, the small grey text that suits notes and fine print. Both only work at the very start of a line.
Lists and block quotes
Start lines with - or * for a bulleted list, or 1. for a numbered one, and indent with two spaces to nest a list inside another. A line that starts with > becomes a quote. Start with >>> instead and everything after it, to the end of the message, is quoted.
Links
Masked links put your own words on a link: [read the docs](https://example.com). Discord still shows the real address before anyone leaves the app. A bare link usually turns into a preview card; wrap it in angle brackets, <https://example.com>, to post it without one.
Code blocks and syntax highlighting
Single backticks make inline code: `code`. Three backticks on lines of their own make a code block, and a language name straight after the opening three turns on syntax highlighting, as in ```js, ```py or ```json. Nothing inside a code block is formatted, which makes it the easy way to show symbols exactly as typed.
The ansi language even adds color; How to Make Colored Text in Discord shows how.
Typing a symbol without formatting it
Put a backslash in front of a symbol to show it as is: \*not italic\* keeps its asterisks. The same trick reveals a custom emoji’s code: send \:emoji_name: and Discord prints the emoji’s raw code, ID included.
FAQ
Why is my Discord formatting not working?+
Usually a space is missing. Headers, subtext, lists, and quotes need a space after their symbol, and they must start a new line. Anything inside a code block also stays plain on purpose.
Does markdown work in embeds?+
Yes, in an embed’s description and field values, masked links included. Titles and field names are best kept to plain text.
Can I change the font or color of Discord text?+
There is no font or color setting for normal text. Color comes only from an ansi code block, which shows on desktop and in the browser, and a different look comes from Unicode lookalike letters made with a font generator.
Try the tools
All guides →Discord Markdown Previewer
Live preview of Discord markdown: bold, spoilers, headers, code, lists, and more.
Launch tool →Discord Colored Text Generator
Make colored Discord messages with ANSI codes and copy them ready to paste.
Launch tool →Fancy Font Generator
Turn text into cool Unicode fonts for bios and usernames on Discord, Instagram, TikTok, and X.
Launch tool →