Discord Markdown 201
Kudos to @matthewzring (and
Discord@Frosty#9449
) for the 101 Guide (from which this guide was modified). But – if only it’s enough! Discord needs some comprehensive and updated documentation… …and naw, they did finally published a (new) official guide, but it still doesn’t come close…
Wanna inject some flavor into your everyday text chat? You’re in luck! Discord uses a variant of Markdown, a simple plain-text formatting system that makes your sentences stand out. Just add a few ornaments around your text to change it!
Don’t want to invoke Markdown? You can slap a backslash
\
directly preceding the expression, and it’ll escape the formatting. The same goes with any backslash that Markdown thinks you are escaping something with. You’ll see the arms of your customized shruggie as you’d like!
Style | Markdown |
---|---|
Italics | *italics* 1 or _italics_ |
Bold | **Bold** |
Underline | __Underline__ 2 |
~~Strikethrough~~ |
|
||Spoiler|| 23 |
|
Link | [Link](https://example.com) |
On Desktop/Web, you can see a preview of your text formatted with these options (except for Link) right in the message box. You’re gonna need some imagination if you are a Mobile user or switched on the legacy chat input in the Accessibility settings 👌.
It doesn’t show on the Desktop/Web preview (at this writing), but formatting can span multiple lines!4
In the non-legacy chat input on Desktop/Web, if your clipboard has a link queued up, you can also quickly link it on some text by selecting them and pasting in-place (Right-Click–Paste works too!).
You can even mix n’ match formatting options into more powerful ones, such as underline bold italics
(**___underline bold italics___**
or *__**underline bold italics**__*
or etc.).
Just dropping a web address without the []()
markdown also links it up,
which you’ve probably done several times. Note that a “plain” link isn’t based on Markdown, so \
won’t “unlink” it.
Both “plain” and “masked” links also supports previews if the linked site has them set up.
To preëmptively squelch the preview, surround the web address with <…>
, e.g.,
[Rick Roll](<https://www.youtube.com/watch?v=dQw4w9WgXcQ>)
Pro tip (and image too) from the Discord blogger: links inside spoilers also have their embed in spoilers!
By the way, Discord found a way to stop you from hiding rickrolls or malware behind legit links.
Markdown also has code formatting. In addition to making your text stubby and nerdy,
code blocks are also unique because they disable Markdown formatting for their contents.
You know what I’m talking about if you ever copy-pasted code or ASCII art and found Discord turning it into pasta.
(You can still combine with italics and et cetera
from the outside.)
You can make some of your text code-looking
with inline code
(like what I’ve done in this guide)
by wrapping them in single or double backticks`
the same way as bolds and italics.
The point of double backticks (``
) is in case you want to put single backticks (`
) in there.
(Because code formatting disables Markdown inside, backslashes\
are out too.)
You can also create multiline code blocks by placing triple backticks (```
) before and after it.
Although Discord (unlike other Markdown apps) doesn’t require so (most of the time – you’ll soon see),
the good habit is to place them on lines separate from the contents to be consistent.
A great convenience for Desktop/Web is that, while under a block code,
pressing ↩ Enter
/⌅ Return
starts a new line instead of posting your half-finished haiku early.
For those coders out there, to really spice up your code blocks, you can denote a specific coding language by typing its name/ID right after the backticks that start your code block. If Discord supports the language, Desktop/Web gets fancy-schmancy syntax highlighting in both the chat and the non-legacy editor. Mobile does not support syntax highlighting (yet?).
⸺ Ruby Discord #rules [screenshotted PTB309567] (using with original author’s permission)
Different languages have more-or-less different approaches to highlightable syntax.
ansi
guide: https://gist.github.com/kkrypt0nn/a02506f3712ff2d1c8ca7c9e0aed7c06Note that if there’s a space anywhere on the line after the beginning backticks (where your language goes), Discord takes that you forgot the good habit and treats it as part of your content.
*
or -
and one or more spaces beginning the line.1.
).
1\.
Lists don’t have previews in the message box at this writing.
You can indent lines (list or regular lines!) within a list by padding spaces in front.
The number of indent spaces should match the number of characters in the index part of the previous level, though Discord rounds space counts up and allows extra spaces in the indent2. Like with ASCII art, the monospace font of a temporary code block can aid if counting spaces gets tedious.
* Level 1 line * Discords rounds up * but for consistency, you should match Level 0’s indent * same deal at other levels * this Level 2 has 4 characters for the index * so indents with 4 spaces or less are all level 3 * another Level 1 * extra indents have no effect * other than requiring more spacebar strikes * Level 1 with 2 extra spaces after `*` * this Level 1 has 4 characters for the index * so indents with 4 spaces or less are all level 2 1. same deal with number indices * this Level 1 has 3 characters for the index * so indents with 3 spaces or less are all level 2
For Discord Markdown, the index of the first list line declares a bullet or the starting number.
Effectively, the indices in your list don’t need to match – only the first index matters.
All of 1. 1. 1.
, 1. 6. 9.
and even 1. * -
show up autocorrected to 1. 2. 3.
.
To turn messages into Block Quotes, start your lines with >
or >>>
(including the one space).
Block quotes imply that a piece of text is from somewhere else,
such as Google or (back when Replies weren’t a thing) other people’s messages.
>
at the beginning of a line of text creates a single-line block quote.
On Mobile (and ancient versions of Discord such as the one 101 used),
>>>
at the beginning of a line of text puts that line and the rest of your message in a multiline block quote.2
This saves you the need to punch >
on every line, especially for a long passages.
On Desktop/Web not using the legacy chat input from the Accessibilities menu,
both >
and >>>
also directly become a gray quote-indent line in front of their line inside the message box,
similar to how Discord formats quotes in the chat. If you start a new line4 from this indented text,
Discord conveniently quote-indent your new line for you.
Hitting ⌫ Backspace
next to the quote-indent deletes it and brings you out of the block quote (as expected).
A side effect of this convenience is that Desktop/Web’s non-legacy editor does not distinguish >>>
-based multiline
quotes from >
-based ones and cannot create them. Problematic back when code blocks disabled even the quote Markdown.
Fortunately, those sent from Mobile are still formatted in the chat.
(Ignore the missing leading space, it’s a long-running Mobile-only 🐛 and occurs both inside a block quote and outside.)
To quote a code block, prefixing your >
s down the code block. Works on any platform,
just that with Desktop/Web’s code block preview, stabbing it right through the code block looks rather odd.
To create a heading, prefix a line with 1–3 hashtag#
s followed by one or more spaces.
The more #
s, the smaller the heading. Markdown supports up to six #
s, though Discord Markdown only goes to three.
Yes, you can mix n’ match Sweet Styles (inlcuding `code`
) inside your headings too.
Headings are Bold by default though, so Bold does nothing in headings.
New (Desktop PTB309567, Web 309513, Mobile 237.13) and unique2 to Discord
is the syntax to make a line of text quieter with -#
plus one or more spaces.
It’s like an anti-heading, just also not Bold by default, and also gray.
While not Markdown, Discord’s things like mentions and channel tags are also text-based structures internally: https://discord.com/developers/docs/reference#message-formatting
Timestamp Generator: https://hammertime.cyou
Backslashes can also escape those, but effects are a bit inconsistent. For consistent results:
<\@USER_ID>
, <\#CHANNEL_ID>
, <\@&ROLE_ID>
, etc.<@USER_ID\>
, <#CHANNEL_ID\>
, <@&ROLE_ID\>
, etc.:100\:
\<:NAME:ID>
, \<a:NAME:ID>
, \<t:TIMESTAMP>
, etc.On Desktop/Web, you can bring out a flyout to tag non-text channels (Voice, Guide, etc.) with #!channel
If you start your message with @silent
(followed by space or newline), that message won’t push device notifications.
(Explicit @
pings are still highlighted and counted). See: https://github.com/discord/discord-api-docs/commit/b7d6467
And now you’re a Discord text Markdown super-expert. Go out there and highlight your accomplishments!
This does not apply on Desktop/Web if a space follows the first *
(i.e., * text*
or * text *
)
[tested Web 198920, Desktop PTB 198953]; it also does not apply on Mobile if a space precedes the second *
(i.e., *text *
or * text *
) [tested Mobile 178.19]. ↩
These are possibly unique to Discord’s Markdown and not found on other Markdown apps like GitHub. ↩
Also check out: Discord’s support article on spoilers ↩
Huh? You didn’t know you can send multiline messages on Desktop/Web with ⇧ Shift
+ ↩ Enter
/⌅ Return
? ↩