Discord/formatting

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
Discord text formatting/markup

Text formatting is similar to a subset of Markdown, although there are differences. Here's what works that we're currently aware of.

Inline

  • bold is **two asterisks**
  • italic is *one asterisk* or _one underscore_
    • They are rendered exactly the same (using <em>) but parsed differently: "a*b*c" becomes abc but a_b_c is left unformatted.
  • underline is __two underscores__
  • strike is ~~two tildes~~
  • code (fixed-pitch inline unformatted text) is `backticks`
    • You can use this format to paste URLs without them becoming links or displaying a preview.
    • There's a better way to just suppress previews, however: see #Previews.
    • There's also a markup for multiple lines of code, with optional syntax highlighting: see Sections below.
  • > (right-angle plus a space) will cause the following paragraph to be indented with a vertical bar
  • spoiler text is ||two pipes||: this causes the text to be obscured until clicked on (similar to this but requiring a click rather than mouse-hover)
  • links with specified text can be done like this: [a link to HTYP](https://htyp.org) produces a link to HTYP

To display characters that would otherwise be treated as formatting, escape them with a backslash:

  • \* will display as *
  • \_ will display as _
  • This does not seem to work with backticks (`), however. This appears to have been a bug which is now fixed.

It looks like escaping an emoji code (like this: "\:smile:") will use the native Unicode emoji instead of Discord's emoji image. The emoji won't appear until the line is sent.

Sections / Text Blocks

  • multiple lines of code can be started with three backticks at the beginning of a line:
```
code lines
code lines
```
  • the initial backticks can have a language designator afterwards, for syntax highlighting:
```php
php code...
```
  • Section headers can be displayed like this:
# header 1
## header 2
### header 3

Header 3 is smallest. In my tests, header 3 is just slightly larger than normal text and bolded; all 3 used used the same sans-serif font.

  • Itemized lists use an initial "*" or "-", with two spaces of indentation to indent the resulting list:
* item 1
* item 2
  * item 2a
  * item 2b 
* item 3

...renders like this:

  • item 1
  • item 2
    • item 2a
    • item 2b
  • item 3

Previews

To display a link without Discord also inserting a preview, surround the URL with angle brackets: <https://htyp.org>. The angle brackets will not be displayed, and preview will be suppressed, but the URL will be presented as a link.

  • This also works within formatted links: the angle-brackets still go around the URL, not the whole expression -- like this: [a previewless link](<https://htyp.org>)
  • Discord's settings refer to the preview as an "embedded link". Previews of links pasted into a discussion can be turned off by revoking this privilege.
  • As of 2022-06-28, this seems to not work on iOS.

Live Time

  • <t:<UNIX time>:<format character>>
    • UNIX time is the time in seconds since... uh, midnight, I think?... on 1969-12-31
    • format character: t,T,d,D,f,F or R
      • t 5:35 PM
      • T 5:35:00 PM
      • d 07/25/2022
      • D July 25, 2022
      • f July 25, 2022 5:35 PM
      • F Monday, July 25, 2022 5:35 PM
      • R in 2 minutes
    • example: <t:1658784360:R> shows the relative time since about 17:17 EDST om 2022-07-25

Credit to Jems for discovering and reverse-engineering this from Discord Timestamp Generator.

Exploration Needed

  • >>>
    • escapes emoji (haven't had time to explore in order to describe it precisely)
    • block indent, but only when pasting (?)

Links