noted.do

Formatting guide

Write this in a note, then publish. Each example shows the result right below it.

Headings

## Section heading
### Smaller heading

Section 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://noted.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://noted.do


  1. Footnotes appear at the bottom of the post. 

Pictures

Use the image button on the plugin bar to upload, then add the line it gives you.

![Harbor at dusk](/assets/example.jpg "Caption goes in quotes")

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.

Harbor at dusk
Caption goes in quotes

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://noted.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://noted.do

Diff

```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
  1. First step
  2. 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 | noted.do |
| Files | sn.relay.do |
Service Host
Blog noted.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-bpKQ

Paste 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.

Centered text
Click to expand

Anything inside, including Markdown.

Styled paragraph

Divider

Above the line

---

Below the line

Above 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://noted.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.

- **publish_at: 2026-10-01 09:00** schedules the post. It stays hidden and appears on its own at that time.
- **draft: true** keeps the note unpublished; you get a private link to preview it.
- **tags: php, self hosting** adds tags. Each gets a page listing its posts.
- **series: Harbor Trip** and **series_part: 2** group posts. Each one shows "Part 2 of 5" with links to the others.
- **hidden: true** keeps the post off your blog's list, the site's home page and all feeds; anyone with the link can still read it (the same as on Listed).
- **main_feed: false** keeps the post on your blog but off the site's home page, site-wide RSS and site-wide search. To keep *all* your posts off the home page, change "Site home page" on your account page.
- **featured: tutorial** (admins only) shows the post in the Featured section of the home page with that label. Use `featured: news`, `featured: new feature`, `featured: true`, or any short label; `featured: false` removes 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.


Then the post begins here.

  • publish_at: 2026-10-01 09:00 schedules the post. It stays hidden and appears on its own at that time.
  • draft: true keeps the note unpublished; you get a private link to preview it.
  • tags: php, self hosting adds tags. Each gets a page listing its posts.
  • series: Harbor Trip and series_part: 2 group posts. Each one shows "Part 2 of 5" with links to the others.
  • hidden: true keeps the post off your blog's list, the site's home page and all feeds; anyone with the link can still read it (the same as on Listed).
  • main_feed: false keeps the post on your blog but off the site's home page, site-wide RSS and site-wide search. To keep all your posts off the home page, change "Site home page" on your account page.
  • featured: tutorial (admins only) shows the post in the Featured section of the home page with that label. Use featured: news, featured: new feature, featured: true, or any short label; featured: false removes 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; }


## Titles only on your blog

To show only post titles on your blog's front page (as on Listed), publish a style note:

```
---
metatype: css
---

.author-post .post-body {
  display: none;
}
```

Blog pages use the same class names Listed did (`author-post`, `post-body`), so Listed CSS themes keep working.

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; }

Titles only on your blog

To show only post titles on your blog's front page (as on Listed), publish a style note:

---
metatype: css
---

.author-post .post-body {
  display: none;
}

Blog pages use the same class names Listed did (author-post, post-body), so Listed CSS themes keep working.