Formatting guide
Write this in a note, then publish. Each example shows the result right below it.
Headings
## Section heading
### Smaller headingSection heading
Smaller heading
Text styles
**Bold**, _italic_, ~~strikethrough~~, ==highlight==, `inline code`, 2^nd and E = mc^2, H<sub>2</sub>O.
Add a footnote like this.[^1] Bare links become clickable: https://relay.do
[^1]: Footnotes appear at the bottom of the post.Bold, italic, strikethrough, highlight, inline code, 2nd and E = mc2, H2O.
Add a footnote like this.1 Bare links become clickable: https://relay.do
-
Footnotes appear at the bottom of the post. ↩
Links
[Link text](https://relay.do) or just paste a URL: https://relay.doLink text or just paste a URL: https://relay.do
Pictures
Use the image button on the plugin bar to upload, then add the line it gives you.

Leave out the quoted part if you don't want a caption. Pictures hosted anywhere else work the same way.Use the image button on the plugin bar to upload, then add the line it gives you.

Leave out the quoted part if you don't want a caption. Pictures hosted anywhere else work the same way.
Code block
```php
<?php
$posts = db()->query('SELECT title FROM posts')->fetchAll();
foreach ($posts as $post) {
echo $post['title'], PHP_EOL;
}
```<?php
$posts = db()->query('SELECT title FROM posts')->fetchAll();
foreach ($posts as $post) {
echo $post['title'], PHP_EOL;
}Code languages
Put the language after the three backticks. Supported names include:
php, js, ts, python, bash, sql, json, html, css, yaml, nginx, dockerfile, go, rust, java, cs, cpp, ruby, diff, ini, markdown. Leave it blank and the blog guesses.
```bash
sudo systemctl restart nginx
curl -I https://blog.relay.do
```Put the language after the three backticks. Supported names include:
php, js, ts, python, bash, sql, json, html, css, yaml, nginx, dockerfile, go, rust, java, cs, cpp, ruby, diff, ini, markdown. Leave it blank and the blog guesses.
sudo systemctl restart nginx
curl -I https://blog.relay.doDiff
```diff
- 'max_image_px' => 1600,
+ 'max_image_px' => 2400,
```- 'max_image_px' => 1600,
+ 'max_image_px' => 2400,Lists
- Bullet item
- Another item
- Nested item
1. First step
2. Second step- Bullet item
- Another item
- Nested item
- First step
- Second step
Checklists
- [x] Back up the Listed feed
- [ ] Import old posts- Back up the Listed feed
- Import old posts
Quote
> Quoted text goes here.Quoted text goes here.
Callouts
> [!NOTE]
> Useful information readers should notice.
> [!TIP]
> A helpful suggestion.
> [!WARNING]
> Something that needs attention.Table
| Service | Host |
| :--- | :--- |
| Blog | blog.relay.do |
| Files | sn.relay.do || Service | Host |
|---|---|
| Blog | blog.relay.do |
| Files | sn.relay.do |
Definition list
CloudPanel
: The control panel that runs this site.- CloudPanel
- The control panel that runs this site.
YouTube video
Paste the link on its own line:
https://www.youtube.com/watch?v=aqz-KE-bpKQPaste the link on its own line:
HTML
Raw HTML works too, like on Listed. Scripts and unsafe styles are removed.
<center>Centered text</center>
<details>
<summary>Click to expand</summary>
Anything **inside**, including Markdown.
</details>
<p style="color: #c7000c; text-align: right">Styled paragraph</p>
<iframe src="https://player.vimeo.com/video/76979871" width="560" height="315" allowfullscreen></iframe>Raw HTML works too, like on Listed. Scripts and unsafe styles are removed.
Click to expand
Anything inside, including Markdown.
Styled paragraph
Divider
Above the line
---
Below the lineAbove the line
Below the line
Post options (front matter)
Start a note with a block between two `---` lines to set options, exactly like Listed. Everything is optional.
---
desc: One-line summary shown in previews and search results
image_url: https://blog.relay.do/uploads/u1/2026/09/cover.jpg
custom_path: my-custom-address
created_at: 2026-01-15
pinned: true
hidden: false
author_name: Guest Writer
author_link: https://example.com
canonical: https://example.com/where-this-was-first-published
---
Then the post begins here.
- **hidden: true** keeps the post off your blog's list and feed; anyone with the link can still read it.
- **Private** (the checkbox on the plugin bar, or `private: true`) gives the post a secret link instead of a public address.
- **pinned: true** keeps the post at the top of your blog.Start a note with a block between two --- lines to set options, exactly like Listed. Everything is optional.
desc: One-line summary shown in previews and search results
image_url: https://blog.relay.do/uploads/u1/2026/09/cover.jpg
custom_path: my-custom-address
created_at: 2026-01-15
pinned: true
hidden: false
author_name: Guest Writer
author_link: https://example.com
canonical: https://example.com/where-this-was-first-published
Then the post begins here.
- hidden: true keeps the post off your blog's list and feed; anyone with the link can still read it.
- Private (the checkbox on the plugin bar, or
private: true) gives the post a secret link instead of a public address. - pinned: true keeps the post at the top of your blog.
Pages
A page is a note that appears in your blog's menu instead of the post list, like an About page.
---
page: true
page_sort: 1
---
About me and this blog.
Use `page_link: https://...` to add a menu item that links somewhere else.A page is a note that appears in your blog's menu instead of the post list, like an About page.
page: true
page_sort: 1
About me and this blog.
Use page_link: https://... to add a menu item that links somewhere else.
Blog style (custom CSS)
Publish a note that starts with this front matter and contains only CSS. It styles your whole blog. Unpublish the note to remove it.
---
metatype: css
---
.blog-title { color: #c7000c; }
.post-preview { border-radius: 0; }
body { --paper: #fffaf0; }Publish a note that starts with this front matter and contains only CSS. It styles your whole blog. Unpublish the note to remove it.
metatype: css
.blog-title { color: #c7000c; }
.post-preview { border-radius: 0; }
body { --paper: #fffaf0; }