← Blog

Markdown in Discord: complete formatting guide (2026)

Every Markdown trick that works in Discord — bold, italic, headings, code blocks, spoilers, lists, and the syntax Discord supports that Markdown doesn't.

Discord supports Markdown — most of it, anyway. The dialect is its own thing: a strict subset ofGitHub Flavored Markdown with a few Discord-only additions (spoilers, mentions) and a few surprising omissions (no tables, no images via Markdown). This is the complete reference for formatting Markdown in Discord in 2026.

The basics that work everywhere in Discord

Type these in any Discord message, server, DM, thread, or channel:

**bold**
*italic*  or  _italic_
***bold italic***
~~strikethrough~~
__underline__
`inline code`
||spoiler text||

Renders as:bold,italic,bold italic,strikethrough,underline,inline code, and a click-to-reveal spoiler.

Note:__underline__ in Discord isunderline, not the bold-or-italic that double-underscore means in CommonMark. Discord overloads the syntax.

Headings (Discord 2023+)

# Big heading
## Medium heading
### Small heading

All three sizes render. Below the size of###, Discord just shows the hash characters as plain text.

Code blocks with syntax highlighting

Fenced code blocks work in Discord exactly like GitHub:

```python
def hello():
    print("highlights as Python")
```

The language tag after the opening fence enables syntax highlighting. Discord supports about 200 languages — the most common ones (Python, JavaScript, Bash, JSON, YAML, SQL, Go, Rust, C++) all work. SeeMarkdown code blocks for the full list and the rules around escaping.

Lists

- Unordered item
- Second item
  - Nested item (two-space indent)

1. Ordered item
2. Second item

Renders like you'd expect. Discord doesn't support task lists (- [x]) — they show as raw characters.

Block quotes

> Single-line quote
>>> Everything below this is a multi-line block quote
> that spans paragraphs.

> quotes one line.>>> quotes everything until the end of the message.

What Discord adds beyond Markdown

These are Discord-only syntaxes that don't exist in regular Markdown:

  • User mentions:<@USER_ID> — pings a user
  • Channel mentions:<#CHANNEL_ID>
  • Role mentions:<@&ROLE_ID>
  • Custom emoji:<:name:id> and<a:name:id> for animated
  • Timestamps:<t:UNIX_TIMESTAMP:R> for "5 minutes ago" style relative times
  • Spoilers:||spoiler|| (Discord-only — not in CommonMark)
  • Header dividers:-# (small text, added in 2024)

What Discord doesn't support

Things Markdown supports that Discorddoesn't:

  • Tables — Discord shows the pipes as literal characters. If you have a table, the cleanest workaround is paste it intoMarkdown Tidy, export to PNG, drop the image into Discord.
  • Images via Markdown![alt](url) doesn't work. Drag-drop the image directly, or paste the URL on its own line for an auto-embed.
  • Hyperlinks via Markdown in regular messages — Discord doesn't render[text](url) in regular messages. (Server embeds and bot messages do.)
  • Nested code blocks — fenced blocks can't contain other fenced blocks.
  • Footnotes — not supported.

Copy-pasting AI output into Discord

The most common Markdown-in-Discord scenario in 2026: you ask ChatGPT or Claude for something, copy the output, paste into Discord. Three things go wrong:

  1. Tables show as raw| pipes | — Discord doesn't render Markdown tables.
  2. Heading levels get cut off — Discord supports#,##,###. Anything deeper renders as literal hashes.
  3. Em dashes, smart quotes, zero-width spaces show through as themselves. Discord renders them but they look off.

If you need the cleaned-up version, paste intoMarkdown Tidy first — Tidy will fix the table, normalize the unicode, then you can export to PNG (for the table) or copy the cleaned Markdown back into Discord.

Discord vs Slack vs Confluence

If you're posting the same content in multiple places, the dialect changes per platform:

  • Discord — this guide. Spoilers, no tables, custom mentions.
  • Slack*bold* (one asterisk) instead of**bold**. No headings. Different code-block syntax.
  • Confluence — needs explicit Markdown-to-Confluence conversion; the inline editor doesn't accept Markdown directly.

For chat-output-to-clean-document workflows, thepaste-vs-convert pattern covers the right order of operations.

Quick cheat sheet

**bold**          → bold
*italic*          → italic
__underline__     → underline (Discord)
~~strike~~        → strikethrough
||spoiler||       → spoiler (click to reveal)
`code`            → inline code
```code```        → fenced block
> quote           → blockquote
>>> multi         → multi-line blockquote
- bullet          → list
1. numbered       → ordered list
# Heading         → big heading
## Heading        → medium heading
### Heading       → small heading
-# small text     → small text (subhead/caption)

Bookmark this; the syntax doesn't change often but every detail matters in a Discord paste.

Try Markdown Tidy free

Paste markdown, get a polished document — no signup required.