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 was put together using information from several sources adapted to match the capabilities of this forum. References can be found here.
TEST Composer Window Image w/ Clickable elements
Click to navigate to a specific section
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Formatting Options
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 \[USER\]
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)
Wraps a highlighted selection in double asterisks.
This **makes words bold**. It can be ***combined with italics***.
This makes words bold. It can be combined with italics.
Emphasis (Italics)
Wraps a highlighted selection in asterisks.
This *makes words italicized*. It can be ***combined with bold***.
This makes words italicized. It can be combined with bold.
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...]()

Emoji
Inserts an emoji where the typing cursor is positioned.
Menu is scrollable. Emojis are searchable and separated by sections. Certain emojis have color variants, click to change.
Emotes unique to the forum:
Emotes can be moused over to show their markdown syntax
Quote whole post
Feature used for replying to posts. Quotes a replied-to post in its entirety.
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
- Clicking the month opens a dropdown menu with all months of a year
- Clicking the year opens a dropdown menu with all the years Β±10 of the current selected year
- Clicking the left arrow moves the calendar back by one month
- Clicking the right arrow moves the calendar forwards by one month
- Hovering over a week name displays its full name
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:
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.
Preformatted text
Wraps text within ```. See more info here
```
type or paste code here
```
type or paste code here
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
Insert table
Opens the Table Builder
The instructions for use can be found by clicking the icon on the bottom-right
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
[SOLUTION] Bug regarding empty header cells being filled when edited in Discourse table
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 here
Build poll
The forum has native poll support. Clicking the βBuild Pollβ option brings up the basic Build Poll menu. Notable settings include:
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
Advanced Options
Clicking the gear opens the advanced Build Poll menu. Notable settings include:
Limit voting to these groups
This option limits the users that can vote in the poll to users in specific group(s).
Automatically Close Poll
This option closes allows the scheduling of polls to close at specific dates and times, selectable in 15-minute increments.
βββPoll types
Insert table of contents
Inserts <div data-theme-toc="true"> </div>
at the position of text cursor.
This enables the Table of Contents for a topic post. All headings regardless of position relative to the inserted line appear in a collapsible element to the right of the post. Option is not available when replying.
Insert reason for edit
Adds a message to editing 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.
β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β β‘β
Markdown, BBCode, HTML Formatting Option Table
This table is sorted alphabetically by the Format column.
Key | β β |
---|---|
![]() |
No formatting option |
![]() |
Formatting option disabled in this forum |
![]() |
No Rendered Result |
Link |
More info in the guide, wonβt fit in the table |
Click to open table
Format | Markdown | BBCode | HTML | Rendered Result |
---|---|---|---|---|
Audio | ![]() |
![]() |
<audio src="audio.mp3" controls></audio> |
See Here |
Blockquote | > Text |
![]() |
<blockquote>Text</blockquote> |
Text |
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: |
![]() |
Emoji directly |
![]() |
Heading 1 | # Text |
![]() |
<h1>Text</h1> |
Text |
Hide Details | ![]() |
[details] |
<details> |
Displayed TextHidden Text |
Hidden Text | ![]() |
![]() |
[comment], <!-- Text --> |
See Here |
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. |
![]() |
![]() |
![]() |
Marked Delete | ![]() |
![]() |
<del>Text</del> |
|
Marked Insert | ![]() |
![]() |
<ins>Text</ins> |
Text |
Mentions | @username |
![]() |
![]() |
@ioi |
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 | Natively supported | ![]() |
<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> |
![]() |
β β β |
Hiding Details
BBCode
Note: Traditional BBCode parser will not read this
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.
See here for various limitations
[details=Normal Text]
Hidden Text
[/details]
Normal Text
Hidden Text
[details=**Bold Text**]
Hidden Text
[/details]
\*\*Bold Text\*\*
Hidden Text
[details="**Bold Text**"]
Hidden Text
[/details]
\*\*Bold Text\*\*
Hidden Text
[details=<b>BoldText</b>]
Hidden Text
[/details]
<b>BoldText</b>
Hidden Text
[details=[Linked text](example.com)]
Hidden Text
[details]
[details=Linked text]
Hidden Text
[/details]
HTML
This is more difficult to use as it requires more HTML tags and space to format something similarly to the BBCode.
<details>
<summary>Displayed Text</summary>
Hidden Text
</details>
This version of Hide Details does allow for formatting of Displayed Text
.
See Implementation Examples
Importance of Line Spacing
<details><summary>Normal Text</summary>Hidden Text</details>
Displayed Text
Hidden Text<details><summary>Displayed Text</summary>**Bold Text**</details>
Displayed Text
**Bold Text**<details><summary>Displayed Text</summary>
**Bold Text**
</details>
Displayed Text
**Bold Text**<details><summary>Displayed Text</summary>
**Bold Text**
</details>
Displayed Text
Bold Text
<details><summary>**Bold Text**</summary>**Hidden Text**</details>
**Bold Text**
**Hidden Text**<details><summary>
**Bold Text**
</summary>**Hidden Text**</details>
Bold Text
**Hidden Text** Formatting Displayed Text
<details>
<summary><b>Bold Text</b></summary>
Hidden Text
</details>
Bold Text
Hidden Text<details>
<summary>
**Bold Text**
</summary>
Hidden Text
</details>
Bold Text
Hidden Text
<details>
<summary>
[Linked Text](example.com)
</summary>
Hidden Text
</details>
Hidden Text
<details>
<summary>
<a href="https://example.com">Linked Text</a>
</summary>
Hidden Text
</details>
Linked Text
Hidden TextHiding 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 re ad 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]"]
β β β β β β β β β β β β YYYY-MM-DDTHH:MM:SS β [Date]T[Time on 24HR clock]
β β β β β β β β β β β β TZ Identifier β List of names for timezones of countries, learn more here
β β β β β β β β β β ββ β [interval].[unit] β Interval in counting numbers (1, 2, 3β¦), units of time (year, month, week, day)
- Examples
β Recurring anniversary date of this postβs creation 2025-05-13T16:18:00Z
β Nonrecurring date of this yearβs summer solstice 2025-06-21T02:41:00Z
β Nonrecurring date range of the last 10 days of November 2025-11-21T05:00:00Zβ2025-11-30T05:00:00Z