Skip to content
DiscordFonts

Discord Markdown and Coloured Text Builder

Enter a message once to generate the delimiter syntax for emphasis, spoilers, headers and code blocks, or assemble an ANSI-coloured block for desktop clients.

  • Bold**text**

  • Italic*text*

  • Bold Italic***text***

  • Underline__text__

  • Strikethrough~~text~~

  • Spoiler||text||

  • Inline Code`text`

  • Code Block```text```

  • Quote> text

  • Big Header# text

  • Medium Header## text

  • Small Header### text

  • Subtext-# text

Colored text

Built from an ansi fenced block. Desktop and web clients render the colours; phone apps fall back to plain code.

Text color

A Parser, Not a Font Setting

When Discord sends a message, it scans the content for a small set of delimiter characters and renders the text between them differently. The characters you typed are still there in the stored message; the app simply interprets them. That is why the same markup works for everyone without any setup, and why copying a formatted message into another app leaves the asterisks visible.

The parser runs on message content and a handful of profile text fields. It never runs on a display name, a nickname or a channel title. Those fields are plain strings, which is the gap that Unicode letter substitution fills.

Syntax Reference

ResultDelimitersTypical use
Bold**text**Stressing a word or key term
Italic*text* or _text_A softer tone or a work title
Bold italic***text***Layering weight and slant
Underline__text__Marking a passage; stacks with other delimiters
Strikethrough~~text~~Retractions and deadpan asides
Spoiler||text||Concealing a reveal behind a tap
Inline code`text`One-line snippets and CLI arguments
Code block```text```Aligned blocks, logs and text art
Quote> textA single quoted line
Multi-line quote>>> textA quote spanning the rest of the message
Headers# / ## / ### textThree levels of section heading
Subtext-# textMuted notes beneath a post
List- item or 1. itemBullet points or an ordered sequence
Masked link[label](https://example.com)A label that opens a URL

Dates use a separate tag rather than a delimiter: <t:1793740800:R> renders as a live countdown adjusted to each reader’s clock. Build one with the Discord timestamp generator.

Line-Prefix Rules

Headers and subtext are the only constructs here that depend on position. One to three # characters followed by a space at the very start of a line produce the three header sizes; -# plus a space produces small, muted text. Both stop working if anything precedes them on the line, including a space. Headers give long rule posts and event announcements a legible structure; subtext suits footnotes, credits and editorial notes.

Colour Through ANSI Code Blocks

Ordinary messages have no colour control, but a fenced block tagged ansi is treated as terminal output and honours escape sequences. The tool above assembles one for you: choose a foreground, optionally a background, and any weight or underline options. The generated block looks like this, where each colour code begins with an invisible escape byte:

```ansi
[ESC][0;34mYour blue text[ESC][0m
```

Desktop and browser clients render the colours; mobile clients currently show the same text in an unstyled code block. Never let colour be the only signal that distinguishes two pieces of information.

Fenced Blocks and Highlighting

Three backticks open a block that preserves whitespace exactly as typed, which makes it useful for aligned tables, logs and text art. A language identifier immediately after the opening fence — ```js, ```py, ```css — enables syntax highlighting for that language. A single backtick pair does the same job inline and, usefully, displays markup characters literally instead of letting the parser consume them.

Stacking and Suppressing Markup

Delimiters nest as long as they are balanced: __***text***__ combines underline, bold and italic, while ||**text**|| conceals bold text behind a spoiler. To show a delimiter rather than activate it, prefix a backslash — \*not italic\* — or wrap the fragment in inline code. Escaping is the cleanest fix when a literal asterisk or underscore keeps triggering unexpected formatting in the middle of a sentence.

Two Tools, Two Jobs

Markdown is presentation applied to unchanged characters. Substitution replaces the characters. The first is readable, accessible and searchable but confined to messages; the second travels with the text and is the only option for a name or a channel heading. Use the main converter for names, or open a focused family such as bold or cursive.

Habits That Keep Posts Readable

  • Structure long posts with headers instead of emphasising every line.
  • Wrap plot points, puzzle answers and sensitive details in spoiler delimiters.
  • Treat colour as decoration, since a large share of readers are on mobile.
  • Prefer markdown for information: assistive technology parses it far better than substituted letters.