What is this?
This post is a comprehensive guide to all the formatting features available when composing posts on Discourse forums, including the use of the forum’s editor toolbar, Markdown, BBCode, and HTML.
This guide is an update of my previous guide from another forum, both in aesthetics and information. The guide was put together using information from several sources adapted to match the capabilities of this forum. References can be found here.
Editor Bar Overview
Text Editor ModeThis button allows users to switch between a purely plaintext editor with markdown rendering and a rich text editor that functions closer to a google docs or microsoft word editor. Each editor has their own strengths and weaknesses
The options below change what they visually do depending on what editor mode is chosen |
|
Change reply
Controls who/what your reply is directed to. Clicking it opens a dropdown menu with three possible choices:
Reply as linked topic
Use this to branch off into a separate topic without derailing the current one. Ideal for tangents or related side conversations.
Reply to a specific post by 𝙪𝙨𝙚𝙧
Visible when replying to a topic AFTER trying to reply to a specific post within it. Selecting it switches your response to target that specific post.
Reply to topic
Visible when you’re replying to a specific post. Allows for switching to replying to the topic without clicking out of the composer window.
Strong (Bold)
|
Inserts Example:This **makes words bold**. It can be ***combined with italics***. This makes words bold. It can be combined with italics. |
|
Toggles bolding at the position of the text cursor. Toggles bolding of highlighted sections. |
Emphasis (Italics)
|
Inserts Example:This *makes words italicized*. It can be ***combined with bold***. This makes words italicized. It can be combined with bold. |
|
Toggles bolding at the position of the text cursor. Toggles bolding of highlighted sections. |
Headings
Headings can be added by starting a line with `#`. Subheadings can be added by adding more than one `#` at the beginning of a line, to a limit of 6.
Example
# Heading 1 ## Heading 2 ### Heading 3 #### Heading 4 ##### Heading 5 ###### Heading 6 ####### Heading 7
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
####### Heading 7
The option itself only includes headings 1-4
Hyperlink
Creates a clickable element that redirects the user to a different webpage.
[Example](https://example.com)
Example
Blockquote
Inserts > at the beginning of every selected line
> Line 1
> Line 2
> Line 3
Line 1
Line 2
Line 3
Example: Nested blockquotes
> Line 1
>>Line 2
>>> *Line 3*
> > > > > > > > Line 4
>>> **Line 5**
Line 1
Line 2
Line 3
Line 4
Line 5
Upload
Image upload from a user’s local files through File Explorer.
Alternatively, drag and drop a file into the composer window to upload.

Progress is shown next to the “Send” or “Save Edit” button. In the composer window, a markdown image link is generated where the typing cursor is positioned.
[Processing: FileName.format...]()
[Uploading: FileName.format...]()

Lists
Bulleted List
Inserts * at the beginning of each selected line.
* Line 1
* Line 2
* Line 3
- Line 1
- Line 2
- Line 3
Staggered bullet lists are possible. It requires 3 spaces preceding the bullet point. Staggering beyond 3 steps renders the bullet point as ▪
* Line 1
* Line 2
* Line 3
* Line 4
* Line 5
* Line 5
* Line 6
- Line 1
- Line 2
- Line 3
- Line 4
- Line 5
- Line 4
- Line 3
- Line 2
- Line 5
- Line 6
Numbered Lists can be used in combination with Bulleted Lists
1. Line 1
2. Line 2
- Line 3
- Line 4
2. Line 4
1. Line 5
2. Line 6
- Line 1
- Line 2
- Line 3
- Line 4
- Line 3
- Line 4
- Line 5
2. Line 6
- Line 5
Numbered list
Inserts #. at the beginning of each selected line. Numbering is sequential and automatic regardless of the number in front.
1. Line 1
2. Line 2
10. Line 3
- Line 1
- Line 2
- Line 3
Staggered number lists are possible. It requires 3 spaces preceding the number and the first staggered number to be '1'. Staggering beyond 2 steps is not rendered.
1. Line 1
2. Line 2
3. Line 3
4. Line 4
5. Line 5
1. Line 6
2. Line 7
3. Line 8
- Line 1
- Line 2
3. Line 3
4. Line 4 - Line 5
- Line 6
2. Line 7
3. Line 8
- Line 6
Numbered Lists can be used in combination with Bulleted Lists
1. Line 1
2. Line 2
- Line 3
- Line 4
2. Line 4
1. Line 5
2. Line 6
- Line 1
- Line 2
- Line 3
- Line 4
- Line 3
- Line 4
- Line 5
2. Line 6
- Line 5
Check list
Inserts - [ ] at the beginning of each selected line. Checks are marked by an x
- [ ] Line 1
- [ ] Line 2
- [x] Line 3
- Line 1
- Line 2
- Line 3
Staggered check lists are possible. It requires 3 spaces preceding the bullet point.
- [ ] Line 1
- [ ] Line 2
- [ ] Line 3
- [ ] Line 4
- [ ] Line 5
- [ ] Line 5
- [ ] Line 6
- Line 1
- Line 2
- Line 3
- Line 4
- Line 5
- Line 4
- Line 3
- Line 2
- Line 5
- Line 6
Check Lists can be used in combination with Bulleted and Numbered Lists
1. Line 1
2. Line 2
- Line 3
- [ ] Line 4
- Line 5
2. Line 6
1. Line 7
2. Line 8
2. Line 9
1. Line 10
2. Line 11
- [ ] Line 12
- [ ] Line 13
- Line 1
- Line 2
- Line 3
- Line 4
- Line 5
- Line 4
- Line 3
- Line 6
- Line 7
2. Line 8
- Line 7
- Line 9
- Line 10
2. Line 11- Line 12
- Line 13
- Line 12
- Line 10
Emoji
Inserts an emoji where the typing cursor is positioned.
:augh: :true: :unoreverse: :cat: :cat_question: (etc)...
![]()
Menu is scrollable. Emojis are searchable and separated by sections. Certain emojis have color variants, click
to change.

Emotes can be moused over to show their markdown syntax

More Editor OptionsThis portion of the guide will cover editor options found under the |
|
Quote whole post
Feature used for replying to posts. Quotes a replied-to post in its entirety.
Preformatted text
Wraps text within ```. See more info here
```
type or paste code here
```
type or paste code here
Insert table
The instructions for use can be found by clicking the
icon on the bottom-right. See the picture below for additional controls.
Common Bugs
Table Duplication
- Editing a table whose some rows don't start with a pipe duplicate these rows - Bug - Discourse Meta
- Completely empty cells could also pose an issue
Empty Headers are automatically filled
The table inserted is a markdown table. See more below.

Extended Syntax | Markdown Guide
Advanced features that build on the basic Markdown syntax.
Hide details
Wraps selected text in the [details] tag, which hides it behind a clickable summary. When a user clicks the summary, the hidden content expands. Clicking it again collapses it.
See more info here
Insert date/time
This is a Discourse unique feature (see Date/Time syntax)
You can set the following options from the menu:
Date, Time
You can select a date using the calendar

| ㅤㅤ | ㅤㅤ |
|---|---|
| A. | Clicking the arrow moves the calendar forward/back by one month. |
| B. | Clicking the month opens a dropdown menu with all months of a year |
| C. | Hovering over a week name displays its full name |
| D. | Clicking the year opens a dropdown menu with all the years ±10 of the current selected year |
Example:
2025-05-13T16:13:00Z
Time Interval
The second date option Until... is for setting a time interval.
Example:
2025-05-13T16:13:00Z→2025-05-20T04:00:00Z
Timezone
Timezone is defined using TZ identifiers.
Advanced Options
Clicking the cog opens up the following options:
Recurrence
Can set whether the inserted time appears on specific dates after a certain time interval
Example (the 1st of every month): 2026-07-01T04:00:00Z
Timezones to display
Defines displayed timezones when the element is clicked on
2025-05-10T04:00:00Z
Date format
Controls how the date is displayed to a user.
Presets
[date=2026-01-01 time=00:00:00 timezone=America/New_York format=LL] |
January 1, 2026 |
[date=2026-01-01 time=00:00:00 timezone=America/New_York format=LLL] |
January 1, 2026 5:00 AM |
[date=2026-01-01 time=00:00:00 timezone=America/New_York format=LLLL] |
Thursday, January 1, 2026 5:00 AM |
[date=2026-01-01 time=00:00:00 timezone=America/New_York format=LT] |
5:00 AM |
[date=2026-01-01 time=00:00:00 timezone=America/New_York format=LTS] |
|
| 5:00:00 AM |
Insert footnote
Inserts ^[Footnotes] at the position of the text cursor, rendered as [#]. Functionally, whatever is written within the brackets is hidden within [#] and only shown when hovered on.
I'm the best worldguessr player ever, it ain't even close.^[This is a lie]I’m the best worldguessr player ever, it ain’t even close.[1]
For more info on footnotes, click here
Build poll
The forum has native poll support. Clicking the “Build Poll” option brings up the basic Build Poll menu. Notable settings include:
Show who voted
Option that affects the anonymity of the poll.
- Asia
- Africa
- North America
- South America
- Australia
- Antarctica
- Europe
- Indian Ocean
- Atlantic Ocean
- Pacific Ocean
- Arctic Ocean
Manually Open/Close Poll
After creating a poll, the creator has the option to close and reopen the poll manually by opening its settings menu
Poll Types
There are 4 types of poll which allow users to interact with polled choices.
Single Select
Users voting on the poll can only select one option
- Phone
- Laptop/PC
- Console
- Watch
- Refrigerator
Multiple Select
Users voting on the poll can select multiple options from 0 to the total number of options
Number Rating
A single select number poll. Poster can manipulate the minimum, maximum, and the steps (deviation) of each number option
- 0
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
Ranked Choice
Advanced Options
Clicking the gear opens the advanced Build Poll menu. Notable settings include:
Title
It adds a title to the poll in the syntax of a Markdown header
- Cool
- Uncool
Limit voting to these groups
This option limits the users that can vote in the poll to users in specific group(s).
- Smell of freshly cut grass
- Smell of rain
Automatically Close Poll
This option allows for the scheduling of polls to close at specific dates and times, selectable in 15-minute increments.
- A pound of bricks
- A pound of feathers
Result Chart
This allows you to show the poll results with either a bar chart or pie chart
- Pie 1
- Pie 2
- Pie 3
- Pie 4
- Bar 1
- Bar 2
- Bar 3
Blur Spoiler
Wraps highlighted text in a [spoiler] tag, blurring the text beyond recognition
Apply Wrap (Currently Nonfunctional)
Inserts stylized containers using the [wrap] tag as opposed to pure HTML.
Currently there is no CSS that [wrap] is able to target on the forum. Hound any of the forum admins for it.
How an admin can add CSS for [wrap] targetting
Admin Panel → Customize → Themes
Edit CSS for that theme and add this
[data-wrap="*𝑾𝒓𝒂𝒑 𝒏𝒂𝒎𝒆*"][data-*𝑲𝒆𝒚*="*𝒗𝒂𝒍𝒖𝒆*"] {
CSS HERE
}
OR
[data-*𝑲𝒆𝒚*="*𝒗𝒂𝒍𝒖𝒆*"] {
CSS HERE
}
OR
[data-wrap="*𝑾𝒓𝒂𝒑 𝒏𝒂𝒎𝒆*"] {
CSS HERE
}
Other Editor Options INCOMPLETEThis portion of the guide will cover editor options found outside the composer window. |
|
Why are you editing?
Appends a note to edit history when a post edit is saved. Useful for keeping track of edit history and/or when there are multiple collaborators in a wiki topic.
Image GridINCOMPLETE
- grid has all markdown images contained in a container with all images being the same width and height
- carousel is a mode of the `[grid]` tag which renders the images within a container with one image displayed at a time and front and back arrows to cycle through the images within the container
Formatting Table NEEDS EDITINGThis portion of the guide functions as a cheat sheet for all style changes and their corresponding Markdown, BBCode, and HTML alternatives. It is sorted alphabetically based on the Format (left) column
|
|
Click to open table
| Format | Markdown | BBCode | HTML | Rendered Result |
|---|---|---|---|---|
| Audio | <audio src="audio.mp3" controls></audio> |
See Here | ||
| Blockquote | > Text | <blockquote>Text</blockquote> |
See Here | |
| Bold | **Text** |
[b]Text[/b] |
<b>Text</b>, <strong>Text</strong> |
Text |
| Checklist | [] [X] |
|||
| Date/Time | See Here | 2025-05-22T04:00:00Z | ||
| Emoji | :EmojiName: |
|||
| Heading 1 | # Text |
<h1>Text</h1> |
Text | |
| Hide Details | [details] |
<details> |
Displayed TextHidden Text |
|
| Hidden Text | [comment], <!-- Text --> |
|||
| Highlight | <mark>Text</mark> |
Text | ||
| Horizontal Rule | --- |
<hr> |
||
| Image |  |
[img]example.com[/img] |
<img src="https://example.com" alt="ImageName" width="200" height="100"> |
![]() |
| Italics | *Text* |
[i]Text[/i] |
<i>Text</i>, <em>Text</em> |
Text |
| Keybind | <kbd>Key</kbd> |
Ctrl | ||
| Large Text Size | <small>Text <small>Text</small></small> |
Text Text | ||
| Line Break | Natively supported | <br> |
Text Text Text Text |
|
| Link | [Display Text](example.com) |
[url]http://example.com[/url] |
<a href="https://example.com">Display Text</a> |
Display Text |
| List | * , 1. |
See here | ||
| Marked Delete | <del>Text</del> |
|||
| Marked Insert | <ins>Text</ins> |
Text | ||
| Mentions | @username |
@spheroid | ||
| Preformatted Text/Code | `Text` |
[code]Text[/code] |
<code>Text</code>, <pre>Text</pre> |
Text |
| Quote | [quote="username, post: PostNumber, topic: TopicNumber, full=true/false"] Quoted Text [/quote] |
See Here | ||
| Small Text Size | <big>Text</big> |
Text | ||
| Strikethrough | ~~Text~~ |
[s]Text[/s] |
<s>Text</s> |
|
| Structuring/Grouping | Native | [wrap] |
<div> |
|
| Superscript | Text<sup>Text</sup> |
Text Text | ||
| Subscript | Text<sub>Text</sub> |
Tex tText | ||
| Tables | See Here | See Here | ||
| Underline | [u]Text[/u] |
Text | ||
| Video | https://www.youtube.com/.... |
<video src="video.mp4" controls></video> |
||
| |
Misc Info
Everything below provides additional information linked from the sections above.
Hiding Details
[BBCode] |
<HTML> |
|---|---|
This is the simpler of the two to use, and the version used in the Formatting Options.[details=Displayed Text]Hidden Text[/details]It has one limitation in that the Displayed Text cannot be formatted at all. |
This is more annoying to use as it requires more HTML tags, space, and characters to format something similarly to BBCode.<details><summary>Displayed Text</summary>Hidden Text</details>This version of Hide Details allows for the formatting of Displayed Text.It also has the advantage of accessing css classes specific to <details><details class="elided"><summary>Summary</summary>...</details> |
Hiding Text with HTML
HTML allows for users to hide text within the composer. Using the methods below, the HIDDEN TEXT will only be viewable when editing a post.
SINGLE LINE:
[comment]: <> (HIDDEN TEXT)
<!-- Hidden Text -->
MULTI-LINE:
<!---
HIDDEN
TEXT
-->
Date/Time with BBCode
Note: Traditional BBCode parser will not read this
Single Date:
[date=YYYY-MM-DD time=HH:MM:SS timezone="TZ Identifier"⁽²⁾ recurring="[interval].[unit]"⁽³⁾]
Multidate:
[date-range from=YYYY-MM-DDTHH:MM:SS⁽¹⁾ to=YYYY-MM-DDTHH:MM:SS timezone="TZ Identifier"⁽²⁾ recurring="[interval].[unit]"⁽³⁾]
| 1 - | YYYY-MM-DDTHH:MM:SS → [Date]T[Time on 24HR clock] |
| 2 - | TZ Identifier → List of names for timezones of countries, learn more here |
| 3 - | [interval].[unit] → interval in counting numbers (1, 2, 3…), units of time (year, month, week, day) |
Multiline Code
This is the feature when clicking the Preformatted Text option. Multiline code requires text to be wrapped in ``` at the minimum
```
Text
Text Text
Text
```
Text
Text Text
Text
To display ``` within the code box, the text must be wrapped in more ` than the desired display amount
Progressively removing `
6 `
`````
Text
````
Text Text
```
Text Text Text
```
Text Text
````
Text
`````
5 `
Text
````
Text Text
```
Text Text Text
```
Text Text
````
Text
4 `
Text
Text Text
```
Text Text Text
```
Text Text
Text
3 `
Text
Text Text
Text Text Text
Text Text
Text
Syntax Highlighting
To add syntax highlighting, specify a language next to the `before the code block.
```json
"firstName": "Joe",
"lastName": "Shmoe",
"age": 50
```
"firstName": "Joe",
"lastName": "Shmoe",
"age": 50
A full list can be found here
Footnotes
Single-use
Example text.^[Anything within the brackets
is rendered within the footnote element when hovered on]
Example text.[2]
Multiuse
Single line,[^singleline] then multiline.[^multiline1] [^multiline2] Finally multiuse [^singleline] [^multiline1] [^multiline2]
[^singleline]: Using only a single line, no breaks between lines using <kbd>Enter</kbd>.
[^multiline1]: Using multiple lines is possible in two ways.
First way is by having no line separation between text.
You can use a **good** amount of formatting options within the element, only issue being a lack of horizontal space.
Any formatting that only spans a single line will work this way.
[^multiline2]: If you need to use formatting options that use multiple lines or need more space for clarity when typing, then indenting is necessary.
<br>
To indent, start a line with 4 spaces.
```
Line 1
Line 2
Line 3
Line 4
```
Single line,[3] then multiline.[4] [5] Finally multiuse [3:1] [4:1] [5:1]
Some things work cleanly, while others do not. For example,[details] only works intermittently while <details> seems to always work.
This is a lie ↩︎
Anything within the brackets
is rendered within the footnote element when hovered on ↩︎Using only a single line, no breaks between lines using Enter. ↩︎ ↩︎
Using multiple lines is possible in two ways.
First way is by having no line separation between text.
You can use a good amount of formatting options within the element, only issue being a lack of horizontal space.
Any formatting that only spans a single line will work this way. ↩︎ ↩︎If you need to use formatting options that use multiple lines or need more space for clarity when typing, then indenting is necessary.
To indent, start a line with 4 spaces.
↩︎ ↩︎Line 1 Line 2 Line 3 Line 4



















