Skip to content

Embedding a table in a note

A note can hold a table that keeps itself up to date. Write down what you want to see — everything still open before the release — and the note shows it, now and next month, without you maintaining a list by hand.

It works in both editing and reading modes, and it updates as your vault changes: complete a task somewhere else and it leaves the table on its own.

A table inside a note, captioned 'Still open before release': four high-priority open tasks with their due dates, priority and status, a checkbox on each row, a row count and an Edit control in the header.
A block in a note, rendered. The count and Edit sit in its header.

Two ways, and neither involves remembering the syntax.

From the note. Type /tableview and press Enter. You get a starter block with the pieces filled in, ready to edit. (/table is the other one — that inserts an ordinary markdown table.)

From the Table. Set up the view you want in the Table — filter it, sort it, choose the columns — then press Embed. That copies a block matching exactly what’s on screen; paste it into any note.

```pellet-table
title: Open before release
where: status is open
where: due before today
sort: due asc
columns: title, due, status
rows: 12
```

Every line is optional. A block with nothing but where: status is open is perfectly good.

Line What it does
title: A caption above the table
filter: Use a saved filter by name — the same query, in one place
where: A condition. Repeat it for as many as you need
match: all (the default) or any
search: Narrow to matching titles
sort: due asc, or several: due asc, priority desc
group: Break it into sections — status, type, kind, or any property
kinds: Which kinds of file to include — task, note, pdf
columns: Which columns, in order
rows: How many to show before it scrolls

where: lines read the way the filter builder reads:

where: status is open
where: due before today
where: tags has any of ml, papers
where: priority is high
where: stage is draft

A few things that make this less fiddly than it looks:

  • Use the words you see. status is open works, even though the file stores that as todo underneath.
  • Dates can be relative. today, tomorrow, yesterday, +7d, in 7 days, or a plain 2026-09-01. They’re worked out when the table draws itself, so a note left open overnight is still right in the morning.
  • Your own properties work toostage is draft, rating > 3 — and compare correctly for their type, so a number sorts and compares as a number.
  • Either spelling of an operator is fine: due is before 2026-09-01 and due before 2026-09-01 mean the same thing.

If a line doesn’t make sense, the table says so underneath it, naming the line — and still shows everything the other lines matched. A typo costs you one condition, not the whole table.

By default the table shows about nine rows and scrolls inside itself. rows: 20 shows twenty. rows: auto grows to fit everything and never scrolls — the one to use for a note you’ll read straight through or print.

Very large results stop at 500 rows and say so in the header, so you always know when you’re seeing part of something. If you genuinely want more, rows: 900 raises it.

Click a title to open that file — hold ⌘ for a new tab, ⇧⌘ to open it in a pane to the right. Tick a task’s checkbox to complete it, right there in the note; a repeating task advances to its next occurrence rather than closing.

To change the query, click Edit in the table’s header — the control on the right of the caption bar. That swaps it back to the text you wrote; click away and it’s a table again.

That control is the way in on purpose: clicking the table itself does what the table does, and a click in the margin beside it would land in the block’s hidden source.

Exported notes get a real table. The block becomes an ordinary markdown table holding the answer as of the moment you exported — because a file opened in Word or a browser can’t ask your vault anything.

That applies to every format: Markdown, plain text, Rich Text, web page and PDF. All matching rows are written, not just the ones that fit on screen.

If several notes want the same list, save it once as a saved filter and point at it:

```pellet-table
filter: Ship 0.10
columns: title, due, status
```

Change the saved filter and every note using it follows. If the filter is later renamed or deleted, the block says so rather than going blank.