/help/markdown

Markdown cheatsheet

Blog posts and comments take full markdown (CommonMark plus GFM tables, strikethrough, and task lists). Chat and PMs stay light. Raw HTML never renders anywhere.

Help · Icon glossary

Posts and comments

# Heading 1
## Heading 2 … up to ###### Heading 6

Paragraphs are separated by a blank line.
A single newline is a line break.

**bold**, *italic*, ***both***, ~~strike~~, `code`, and \*escaped\*.

- bullet
- bullet
  - nested bullet

1. numbered
2. numbered
   1. nested

- [ ] task to do
- [x] task done

> quoted line
> > nested quote

[link](/tags) · <https://example.com> · bare https://example.com

![same-origin image](/media/diagram.png)

| Left | Right |
|:-----|------:|
| a    |    10 |

---

```ts
const n = 1
```

```art
┌──────────┐
│  boxen   │
└──────────┘
```

    indented code block

Links may point at http(s), mailto:, or a same-origin path. External links open in a new tab. Images must be same-origin paths starting with / — a remote image URL renders as its alt text.

Posts only

A fence may carry a filename in brackets. Tag a fence art (or ascii / utf8) for ASCII / UTF-8 art — same monospace stack as chat, spaces kept, no markdown inside. Embeds need a same-origin src starting with /, no ... Help samples live under public/. Blog attachments are uploaded on create or edit (audio, video, PDF, torrent, eml; 5 GB max) and served at /media|docs|torrents|emails/{itemId}/file with the same visibility as the post.

```ts [app/server.ts]
const n = 1
```

::eml{src="/emails/hello.eml"}

::torrent{src="/torrents/example.torrent"}

::pdf{src="/docs/report.pdf"}

::audio{src="/media/clip.mp3"}

::video{src="/media/demo.mp4"}
hello.eml Download

Chat and PMs (light)

**bold**Bold
*italic* or _italic_Italic
~~strike~~Strikethrough
`inline code`Inline code
[label](https://example.com)Link (http(s) or /path)

HelpIcons