# all·markdown

Discord Markdown and text formatting

Discord text formatting is mostly Markdown, plus a few formats of its own, and one rule that is backwards from everywhere else: __underscores__ make underline, not bold. Everything Discord renders is below.

Edit this: the preview uses standard Markdown, so compare it with Discord

Visual

Open the full editor Runs in this tab, nothing is uploaded.

The preview above renders standard Markdown, which is the point: the two places it disagrees with Discord (underline and spoilers) are exactly the Discord-only formats worth knowing about.

Every format at a glance

FormatSyntaxNotes
Bold**bold**Two asterisks only
Italic*italic* or _italic_Either works
Underline__underline__Discord only: this is bold elsewhere
Bold italic***both***Three asterisks
Strikethrough~~struck~~Two tildes
Spoiler||hidden||Discord only: click to reveal
Inline code`code`Backticks disable all other formatting inside
Subtext-# small textDiscord only: smaller, muted
Heading# ## ### Three levels; a space after the hashes
Quote> or >>> Three angle brackets quote everything after

Bold, italic and underline

Bold is **two asterisks**. Italic is one asterisk or one underscore. Combine them with three: ***bold italic***.

Underline is __two underscores__, and this is the rule that catches everyone. In standard Markdown, on GitHub, in Slack, and in every static site generator, __text__ is bold. In Discord it is underline. Text moved in either direction changes meaning silently: it still formats, just not the way you wrote it.

Discord has no way to write underline other than the underscores. There is no HTML here at all: <u> renders as literal characters.

Spoilers

||the butler did it||

Double pipes on each side. The text renders as a gray block that reveals when clicked, and the whole thing collapses again on some clients when you scroll past. Spoilers are Discord's own invention: copy one anywhere else and you get four pipe characters.

An image can be marked as a spoiler too, by ticking the box when uploading or by naming the file with a SPOILER_ prefix.

Code blocks

Single backticks for inline code, three for a block. A language after the opening backticks turns on syntax highlighting:

```js
console.log('hello');
```

Everything inside a code block is literal: asterisks, underscores, pipes, all of it. That makes a code block the simplest way to post text that must not format, and the usual workaround for the missing table syntax, since a monospace font keeps hand-aligned columns lined up.

Colored text

Discord has no color syntax. The only route is a code block with ansi as its language, containing ANSI escape codes:

```ansi
[2;32mGreen text[0m
```

The character before each bracket is an actual escape character (U+001B), which most keyboards cannot type: people copy it from a generator. It renders on desktop and in the browser client, and not on every mobile build, so treat it as decoration rather than as anything the reader needs.

In ordinary message text there is no color at all. If the goal is to make one line stand out, a heading or subtext does it in one character.

What Discord does not support

Discord's flavour has grown over the years (headings, lists and subtext were all added after launch) so if something here does not render for you, check whether your client is current before assuming the syntax is wrong.

Escaping

A backslash before a formatting character makes it literal: \*not italic\*. For anything longer, a code block is easier: every character inside one is taken at face value.

Common questions

How do I make text bold in Discord?
Wrap it in two asterisks: **like this**. Two underscores are not bold in Discord: __like this__ is underline, which is the single biggest difference from standard Markdown.
How do I underline text in Discord?
Two underscores on each side: __underlined__. Discord is the one place where that means underline rather than bold, and it is why text copied from Discord into anywhere else comes out bold.
How do I hide a spoiler?
Wrap it in double pipes: ||the butler did it||. The text renders as a gray block that reveals on click. Spoilers are a Discord extension; nothing outside Discord understands them.
Can I write colored text in Discord?
Only inside a code block with ansi as its language, using ANSI escape codes. It is fiddly, it does not render on every client, and it cannot be used in ordinary message text. There is no color syntax outside that.
Can I make a table in Discord?
No. There is no table syntax and pipes render literally. The usual workaround is a code block, where a monospace font at least keeps hand-aligned columns lined up.
How do I stop something formatting?
Escape the character with a backslash (\*not italic\*) or put the whole thing in a code block, where every Markdown character is literal.

Sources