Formatting posts

Every piece of Markdown the forum understands, with examples, and why the set is deliberately small.

CommunityUpdated 4 September 2026about 2 min

Inline#

You typeYou get
**bold**bold
*italic*italic
~~struck~~struck
\code\``code
`
@namea link to that player

Headings#

# through ######. They all render below the thread title — the title of
the page is the thread's, so a heading inside a post cannot compete with it.

Lists#

- one
- two

1. first
2. second

A blank line ends a list.

Quotes#

> what they said

Code blocks#

Fence with three backticks on their own lines. Everything inside is shown
exactly as typed — no formatting is applied, which is the point.

Use this for error messages, logs and anything with brackets in it.

Tables#

| Column | Column |
|---|---|
| cell | cell |

Both the header row and the dashed row are required. A single line of
dashes on its own stays an ordinary paragraph. Alignment markers like
:---: are accepted and ignored.

A literal pipe inside a cell needs a backslash: \|.

[text](https://example.com) for external, [text](/ggnetwork/store) for
internal. External links open in a new tab.

A bare https://… in your text becomes a link on its own. A bare /path
does not — mid-sentence, a slash is a slash.

Horizontal rule#

Three or more dashes on their own line.

Why the set is small#

Because everything else is a security decision.

Posts are turned into HTML by a renderer that escapes everything first and
then puts the permitted formatting back. Nothing from your post can become HTML
by accident, because at the moment the formatting is applied there is no raw
HTML left to leak through.

The alternative — accepting HTML and filtering out the dangerous parts
afterwards — is only ever as good as the filter, and filters get bypassed. This
way there is nothing to bypass.

So: no raw HTML, no images by URL, no embedded video. Link them instead.

Discuss this

The wiki explains it. The forum is where you can ask about it.

Open the topic in the forum

Related