Discord Text Formatting: Every Option, With Examples

Bold, italics, spoilers, headers, subtext and code blocks

· · 3 min read

Discord uses its own version of Markdown for message formatting. Most people learn bold and italics and stop there, and several of the more useful options were added recently enough that plenty of long-time users have never come across them at all.

So here's the full set.

The basics

  • **bold** gives bold

  • *italics* or _italics_ gives *italics*

  • __underline__ underlines

  • ~~strikethrough~~ crosses text out

  • ***bold italics*** combines the first two

  • __**underlined bold**__ and similar combinations work as you'd expect

Strikethrough is the one people search for most, and it's just two tildes on each side.

Small text

Put -# at the start of a line to get subtext, which renders smaller and grayer than normal text.

There are two things that will break it. The -# has to be the very first thing on the line, so anything in front of it, including a single space, stops it from working. And the space after the # is required, which is why -#text renders literally while -# text renders as subtext.

It's handy for footnotes, disclaimers, and captions under an announcement.

Headers

  • # Header is the largest

  • ## Header is medium

  • ### Header is the smallest

The same rule applies as with subtext, so the hash has to start the line and needs a space after it. Headers work in normal messages too, not only in forum posts.

Spoilers

Wrap text in ||double pipes|| to hide it behind a click.

There's more detail in the spoilers article, including how to spoiler an image.

Quotes

> at the start of a line quotes that line, and >>> quotes everything that follows it in the message, which is the one you want when you're pasting something long.

Code

Wrap it in single backticks for inline code.

For a block, use three backticks on their own lines above and below. If you add a language name after the opening backticks you get syntax highlighting:

Three backticks, then js, then your code on the next lines, then three backticks to close. Discord supports most of the common languages.

Code blocks are also the reliable way to stop Discord interpreting formatting characters, which matters when you're trying to show someone the syntax rather than use it.

Lists

  • - item makes a bulleted list

  • 1. item makes a numbered list

Indent with two spaces before the dash to nest a list inside another one.

Escaping formatting

Put a backslash before a character and Discord stops treating it as formatting, so \*not italics\* renders with the asterisks visible.

What doesn't work

Regular users can't post masked links, which is the [text](url) syntax that renders as clickable text. It only works in bot and webhook embeds, and that's why you keep seeing it in bot messages but can't reproduce it yourself.

There's also no built-in way to change text color in a normal message. The trick you'll find online involves code blocks with syntax highlighting to force a color, which is fragile, looks different across themes, and doesn't render on mobile at all. Treat it as a novelty rather than a feature.

More from the Gamebot blog