Discord Toolbox

Discord Markdown Cheat Sheet

Discord uses a reduced markdown dialect with additions that exist nowhere else, including spoilers, subtext, and masked links that only work inside embeds. This cheat sheet lists every supported syntax with a live sandbox, so you can test formatting before sending it to a channel.

Interactive Markdown Sandbox

How to use the Markdown Cheat Sheet

  1. Find the syntax you need in the reference list.
  2. Type it into the sandbox and watch it render as Discord would.
  3. Copy the working line straight into your message or embed.

Discord Markdown Quick Reference Table

Style Syntax Example Result Preview Action
Header 1 (Big) # Big Title Big Title
Header 2 (Medium) ## Medium Title Medium Title
Header 3 (Small) ### Small Title Small Title
Subtext (Small Grey) -# Footnote or small text Footnote or small text
Bold **bold text** bold text
Italic *italic text* or _italic_ italic text
Underline __underline text__ underline text
Strikethrough ~~strikethrough text~~ strikethrough text
Spoiler (Hidden) ||hidden secret|| hidden secret
Masked Link [Link Name](https://...) Link Name
Inline Code `console.log('hi')` console.log('hi')
Single Quote > quote line quote line
Multi-line Quote >>> multi-line quote multi-line block
Bullet List - Item 1\n- Item 2 • Item 1
• Item 2
Numbered List 1. First\n2. Second 1. First
2. Second

Discord markdown syntax, including the parts that are Discord-only

Discord implements a reduced subset of markdown plus several extensions that exist nowhere else. Bold, italic, strikethrough, inline code, code blocks, block quotes, and headers behave roughly as they do elsewhere. The Discord-specific additions are spoilers written with double pipes, subtext written with a hyphen and hash prefix, and masked links, which render link text over a URL but only inside embeds, not in ordinary messages.

Two limits shape how much formatting you can practically use. A standard message is capped at 2,000 characters, doubled to 4,000 with Nitro, and every markdown symbol counts toward that total. Embed descriptions allow up to 4,096 characters with a 6,000 character ceiling across all embed elements combined, which is why long formatted announcements are usually posted through a bot or webhook rather than typed directly.

Nesting is where most formatting breaks. Combining bold and italic means wrapping one set of symbols entirely inside the other, and mismatched counts leave visible asterisks in the sent message. Code blocks are the exception to everything: markdown inside a code block is not parsed, which makes triple backticks the reliable way to show syntax literally or to preserve the spacing that ASCII art depends on.

Common problems and fixes

Frequently asked questions

How do you make small subtext in Discord?

Type -# at the beginning of any line (e.g. -# This is small text) to render small subtext.

How do Discord header tags work?

Type # for Header 1, ## for Header 2, and ### for Header 3 at the start of a line.

How do you make hidden spoiler text in Discord?

Wrap your text in double vertical bars like ||spoiler message||.

Can you create masked hyperlinks in Discord?

Yes! In embeds, webhooks, and bot messages, use [Link Text](https://example.com) format.

How do you quote text in Discord?

Type > at the start of a single line, or >>> for a multi-line blockquote.

Does Discord support tables in markdown?

No. Discord does not render markdown tables. Use a code block with aligned columns, or build the layout as embed fields.

How do I write a multi-line code block with syntax highlighting?

Open with triple backticks followed immediately by a language name such as js or python, then start your code on the next line.

What is subtext used for?

Subtext renders smaller and dimmer than body text, which suits captions, disclaimers, and footnotes under an announcement.