Discord Markdown Cheat Sheet

The complete Discord text formatting reference: bold, italic, underline, spoilers, code blocks with syntax highlighting, headers, quotes, timestamps, colored text, and every workaround — with copy-paste examples

Updated July 2026 — includes headers, subtext, timestamps, and ANSI colors

Discord uses a subset of Markdown for text formatting. Wrap text in **bold**, *italic*, __underline__, ~~strikethrough~~, or ||spoiler||. Use # for headers, -# for small subtext, > for quotes, and triple backticks for code blocks. Every supported style with examples is below.

Try It Live: Discord Markdown Previewer

Type any Discord Markdown below and see how the message renders — no need to spam a test channel. Click the black spoiler bars to reveal them, just like in Discord.

How it looks in Discord
MarkdownToolsToday at 9:41 AM
Server update
Deploy went out successfully tonight. Details in the private channel.
Remember: no pings after midnight
Posted by the automation bot
const status = "deployed";

Need to convert? Paste standard Markdown (or an AI answer) and get Discord-ready text with tables and headings normalized.

Try the Markdown to Discord converter →

Discord Text Formatting

Discord supports bold, italic, underline, and strikethrough — and you can stack them by nesting the markers. Underline with double underscores is Discord-specific: in standard Markdown, __text__ means bold. For every combination, mobile tips, and common mistakes, see the dedicated Discord text formatting guide.

Bold

Wrap text in double asterisks

Syntax
**bold text**
Looks like in Discord
bold text

Italic

Wrap text in single asterisks (or single underscores)

Syntax
*italic text*
Looks like in Discord
italic text

Underline

Wrap text in double underscores (Discord-specific)

Syntax
__underlined text__
Looks like in Discord
underlined text

Strikethrough

Wrap text in double tildes

Syntax
~~strikethrough~~
Looks like in Discord
strikethrough

Bold + Italic

Three asterisks combine bold and italic

Syntax
***bold and italic***
Looks like in Discord
bold and italic

Underline + Bold

Nest the markers to stack styles

Syntax
__**underlined bold**__
Looks like in Discord
underlined bold

Underline + Italic

Underline plus italic

Syntax
__*underlined italic*__
Looks like in Discord
underlined italic

All combined

Underline, bold, italic, and strikethrough together

Syntax
__***~~everything~~***__
Looks like in Discord
everything

Discord Code Blocks

Use single backticks for inline code and triple backticks for multi-line code blocks. Add a language name straight after the opening backticks to get syntax highlighting — Discord uses highlight.js under the hood. The Discord code block guide covers every language identifier, diff blocks, and fixes for common mistakes.

Inline code

Wrap short snippets, commands, or file names in single backticks.

Use the `/deploy` command

Multi-line code block

Three backticks before and after. Best for logs, terminal output, or anything that must keep its spacing.

```
Paste logs, commands,
or config here
```

Code block with syntax highlighting

Put the language name immediately after the opening backticks — no space.

```js
const status = "deployed";
console.log(status);
```

Python example

Discord uses highlight.js, so most common language identifiers work.

```python
def greet(name):
    return f"Hello, {name}!"
```

Diff-style release note

Lines starting with + render green and - render red. Great for changelogs.

```diff
+ Added slash command support
- Removed legacy webhook
```

Syntax highlighting languages Discord supports

These are the most common language identifiers. Type the identifier immediately after the opening triple backticks, e.g. ```python.

python / pyjavascript / jstypescript / tsjavaccpp / c++cs / csharpcsshtml / xmljsonyaml / ymlsqlbash / shphpruby / rbgorust / rskotlinswiftluadiffmarkdown / mdinipowershelldockerfileansi
Need a code block outside Discord? Use the Markdown code block generator for documentation, READMEs, and static site content.

Discord Spoiler Tags

Wrap text in double vertical bars to hide it behind a black spoiler box. Readers click to reveal it. You can spoiler a single word, a whole message, or combine spoilers with other formatting. For image spoilers, mobile steps, and etiquette, see the Discord spoiler tag guide.

Basic spoiler

Text stays hidden until clicked.

||the killer is the butler||

Spoiler with formatting

Wrap the fully formatted phrase in spoiler bars so the whole thing stays hidden.

||**major spoiler warning**||

Spoiler image or attachment

Rename the file to start with SPOILER_ before uploading, or use the spoiler option in the upload menu.

SPOILER_filename.png

Discord Headers & Subtext

Discord supports three header sizes plus small muted subtext. The # must be at the start of the line with a space after it.

Header 1 (largest)

# Big header

Header 2

## Medium header

Header 3

### Small header

Subtext (small muted text)

Start the line with -# and a space. Great for footnote-style asides.

-# This renders as small gray subtext

Discord Lists

Bulleted and numbered lists both work. Indent with spaces to nest items one level.

Bulleted list

- First item
- Second item
* Also works with asterisks

Numbered list

1. Step one
2. Step two
3. Step three

Nested list

Add a space (or two) before the dash to nest. Discord supports one level of nesting.

- Parent item
 - Indented child item
- Next parent

Discord Quotes

Use a greater-than sign for a single-line quote or three for a multi-line quote block that runs to the end of the message.

Single-line quote

Put > and a space at the start of the line.

> This line is quoted

Multi-line quote block

>>> quotes all remaining text in the message.

>>> Everything after this
is quoted
until the message ends

Quote a command or answer

Quotes combine cleanly with inline code and other formatting.

> Use `/deploy preview` before merging

Masked links use standard Markdown link syntax to show custom text instead of the raw URL. Wrap a URL in angle brackets to stop Discord from generating an embed preview.

Masked link

Shows the label text as a clickable link.

[Markdown cheat sheet](https://www.markdowntools.io/cheat-sheet)

Suppress the embed preview

Angle brackets around a URL prevent the link embed from appearing.

<https://www.markdowntools.io>

Masked link without embed

Combine both: masked text plus angle brackets inside the parentheses.

[the docs](<https://www.markdowntools.io/cheat-sheet>)

Discord Timestamps

Dynamic timestamps show the correct time in every reader's local timezone. The format is <t:UNIX_TIMESTAMP:STYLE>. Use the Discord timestamp generator to build one from a date picker, or grab a Unix timestamp and pick a style:

SyntaxExample outputStyle
<t:1751328000:d>07/01/2026Short date
<t:1751328000:D>July 1, 2026Long date
<t:1751328000:t>1:00 AMShort time
<t:1751328000:T>1:00:00 AMLong time
<t:1751328000:f>July 1, 2026 1:00 AMShort date/time (default)
<t:1751328000:F>Wednesday, July 1, 2026 1:00 AMLong date/time
<t:1751328000:R>in 2 hoursRelative time

Escaping Markdown in Discord

To show Markdown characters literally instead of formatting the text, escape them with a backslash.

Escape asterisks

Renders as *not italic* with visible asterisks.

\*not italic\*

Escape underscores

Useful for file_names_with_underscores.

\_\_not underlined\_\_

Show backticks in inline code

Wrap in double backticks to display a literal backtick inside code.

``use `backticks` here``

Tables in Discord (Not Supported + Workarounds)

Discord does not render Markdown tables — pipe syntax comes out as plain text. Three workarounds:

  1. Code block: paste the table inside triple backticks so the monospace font keeps columns aligned.
  2. Embed fields: bots and webhooks can send embeds with inline fields that look like a small table.
  3. Convert it: paste your Markdown into the Markdown to Discord converter to turn tables into a readable monospace block automatically.

Table inside a code block

Pad the columns with spaces — the monospace font keeps everything aligned.

```
Name      Role      Status
Alice     Admin     Online
Bob       Mod       Away
```

Colored Text in Discord (ANSI Trick)

Discord's code blocks support ANSI escape codes, which lets you post colored text. Create a code block with the language set to ansi and wrap text in escape sequences. The escape character (ESC, Unicode U+001B) is included automatically when you copy the examples below, so they paste straight into Discord. Colors render on desktop and web, but not on mobile. To build your own combination visually, use the Discord colored text generator.

Red warning text

```ansi
ESC[31mThis text is redESC[0m
```

Bold green success message

```ansi
ESC[1;32mDeploy succeededESC[0m
```

Yellow text on indigo background

```ansi
ESC[45;33mHighlighted lineESC[0m
```

Text colors

[30mGray
[31mRed
[32mGreen
[33mYellow
[34mBlue
[35mPink / Magenta
[36mCyan
[37mWhite

Background colors

[40mDark blue
[41mOrange
[42mMarble blue
[43mGrey-turquoise
[44mGray
[45mIndigo
[46mLight gray
[47mWhite

Combine format and color with a semicolon, e.g. [1;31m for bold red. Use [0m to reset back to the default style, [1m for bold, and [4m for underline.

Not Supported in Discord

  • Markdown tables
  • Images embedded in text
  • Footnotes
  • Task lists (checkboxes)
  • Horizontal rules
  • HTML tags

Discord Formatting Tips

Edit to fix formatting

Sent a message with broken Markdown? Press the up arrow to edit your last message instead of reposting.

Shift + Enter for new lines

Use Shift + Enter to add line breaks without sending — essential for multi-line code blocks and quotes.

Big emoji

Send only emojis (no text, up to 27) and Discord displays them at jumbo size.

Highlight the syntax toolbar

Select text in the message box and Discord shows a formatting toolbar — handy when you forget the exact markers.

Troubleshooting: Discord Formatting Not Working

Nine times out of ten, broken Discord Markdown comes down to a stray space or a mobile-only limitation. The most common problems and their fixes:

Formatting not working at all

Check for spaces just inside the markers: ** bold ** fails, **bold** works. The marker must touch the first and last character of the text it wraps.

Syntax highlighting shows no colors on mobile

That is a Discord limitation, not a typo — the mobile apps render code blocks in monospace but skip highlight.js colors. Your block will still look right for desktop and web readers.

ANSI colored text shows escape codes instead of colors

Colored ANSI blocks only render on Discord desktop and web. On mobile, readers see the raw codes. There is no fix — use it in desktop-heavy servers.

Header renders as a literal # symbol

The # must be the first character of the line, followed by a space. Headers also do not work mid-message on some clients — put them on their own line at the start.

Code block language not highlighting

The language identifier must come immediately after the opening backticks with no space: ```python works, ``` python does not. Check the identifier against the language list above.

Underscores in file_names turning italic

Escape them with backslashes (file\_name) or wrap the name in backticks as inline code, which disables all formatting inside.

Frequently Asked Questions

What Markdown does Discord use?

Discord uses its own lightweight subset of Markdown, rendered by a library called simple-markdown with Discord-specific additions. It supports bold, italic, underline, strikethrough, spoilers, inline code, code blocks with highlight.js syntax highlighting, headers, lists, quotes, masked links, and timestamps — but not tables, images, or HTML.

How do I format text in Discord?

Wrap text in Markdown markers: **bold**, *italic*, __underline__, ~~strikethrough~~, or ||spoiler||. Use # for headers, -# for small subtext, > for quotes, and backticks for code. You can stack styles, for example ***__bold italic underline__***.

How do I make a code block in Discord?

Put three backticks (```) on the line before and after your text. For a single word or command inside a sentence, wrap it in one backtick instead. For syntax highlighting, add a language name right after the opening backticks, for example ```python or ```js.

How do I make a spoiler in Discord?

Wrap your text with double vertical bars: ||spoiler text||. The text appears as a black box until someone clicks it. You can also mark images and attachments as spoilers by starting the file name with SPOILER_ or using the spoiler option when uploading.

How do I get colored text in Discord?

Use an ANSI code block: type three backticks followed by ansi, then wrap your text in ANSI escape codes like [31m for red or [32m for green, and end the block with three backticks. Colored ANSI text renders on the Discord desktop and web apps but not on mobile.

Does Discord support Markdown tables?

No, Discord does not render Markdown tables. The common workarounds are to paste the table inside a code block so the columns stay aligned in monospace, use inline fields in an embed via a bot or webhook, or convert the table with the Markdown to Discord converter.

How do I make text bold in Discord?

Wrap the text in double asterisks: **your text**. For bold and italic together use three asterisks: ***your text***.

How do I underline text in Discord?

Wrap the text in double underscores: __your text__. Underline is Discord-specific and is not part of standard Markdown, where double underscores mean bold.

How do I make small text in Discord?

Start the line with -# followed by a space: -# your text. Discord renders it as smaller, muted subtext under your message.

How do I stop Discord from formatting my text?

Escape the special character with a backslash: \*not italic\*. To show a literal backtick inside inline code, wrap the snippet in double backticks instead.

Why isn't my Discord formatting working?

The most common cause is a space between the marker and the text: ** bold ** fails while **bold** works. Other frequent culprits: the code block language identifier has a space after the backticks, the # of a header is not at the start of the line, or you are viewing ANSI colors or syntax highlighting on mobile, where Discord does not render them.

Discord Tools & Related Cheat Sheets