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.

Discord · 6 min read · By Chris Lenga · Updated

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.

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 →