You’re reading the ZotLit v2 docs. Still on v1? Read the v1 docs

ZotLit

Track reading status in the Query View

Show, edit, sort, and filter a reading status that you keep in Literature Note properties, in a Query View or in Obsidian Bases.

Keep a reading status, a rating, or another research mark on each paper's Literature Note, and work with it beside the paper's Zotero fields. This page uses a text property, reading-status, with the values to-read, reading, and read.

Before you start

You need a view of items in a query file or a query block. To edit values, use the Table layout. See Use the Table layout.

The values live in the properties of your Literature Notes, so Obsidian's Properties panel and Bases show the same values. Properties from your Literature Notes explains how the view reads them.

Add a reading status column

Open the properties menu

Select Properties in the view's toolbar.

Add the property

Type reading-status in Find or create…, then select Add "reading-status" vault property.

When your notes already use the property, the list shows it as vault.reading-status. Select its checkbox instead.

The new column reads the reading-status property of each paper's Literature Note:

  • A value shows as text.
  • An empty cell means that the note has no value for the property.
  • No note means that the paper has no Literature Note yet.

The List and Cards layouts show the column too. Copy and CSV export include it. To give the column a shorter name, such as "Status", see Rename a property.

The menu does not offer Obsidian's tags, aliases, and cssclasses, or the keys that ZotLit uses to link a note to its paper. Vault properties lists them.

Edit a value in the Table

Select the cell

Select a cell in the column. A field opens in the cell.

Type the value

Type reading.

Save or cancel

Press Enter, or select anywhere outside the cell, to save. Press Tab to save and move to the next property in the row. Press Escape to cancel.

ZotLit writes the value to that one property of the note and leaves the note's other properties as they are. When the note is open in an editor, the change shows there at once. A change that you make in the Properties panel or in the note shows in the cell too.

To clear a value, delete the text and save. The note keeps the property with an empty value. To remove the property from the note, use Obsidian's Properties panel.

The field follows the property type that Obsidian's Properties panel shows for the property:

  • A checkbox property toggles when you select it. A box with a dash means that the note has no value.
  • A list, tags, or aliases property shows its items in a row. Type an item and press Enter to add it. A comma stays part of the item. To remove an item, select its cross, or press Backspace in the empty field and then Backspace again. In a list, Escape keeps the items that you added.
  • A number property saves only a number.
  • A date property opens a date field, and a date and time property opens a date and time field.

Text and list fields suggest the values that your notes already hold for the property.

To change the field, change the property type in Obsidian's Properties panel. Values that an edit writes lists every type.

Some cells are read-only. When you point to one, a lock icon shows at its end. The icon's tooltip reads The note’s profile sets this value on each update. The note's profile writes this property on every update, such as title or citekey. To keep your own value, change its merge strategy in Configure frontmatter properties.

Start tracking a paper without a note

A cell that reads No note also takes a value. The first value creates the Literature Note.

Type the value

Select the cell, type to-read, and press Enter.

Choose a profile, if asked

ZotLit creates the note as Create in the literature note column does. When more than one profile fits the paper, a picker opens. See Choose the profile that creates the note.

A notice names the new note, and the cell shows to-read. For a checkbox property, one click on the cell creates the note and checks the box.

Selecting the cell creates nothing. An empty value creates nothing either. When you dismiss the profile picker, ZotLit creates no note and shows No note was created, so “reading-status” was not saved.

In a Literature Note

A query block or an embed inside a Literature Note can list that note's own paper. That row reads and writes the note that holds the view, even when the paper has a second Literature Note.

Sort by reading status

Select Sort, then Add sort, and choose vault.reading-status. The menu lists a property once at least one of your Literature Notes has it.

Papers with no value, and papers without a note, sort last in both directions. Add a Zotero property, such as the date, to break ties.

The view sorts at most 5,000 matching papers. In a larger library, add a filter, such as a Collection, so that fewer papers match. After you edit a value, the rows keep their place until the view runs again.

Filter by reading status

Add a condition

Select Filter, then Add condition, and choose reading-status.

Choose the operator and the value

Choose is and type read. The condition reads vault["reading-status"] == "read" as an expression.

is not and is empty also match papers that have no Literature Note. For example, reading-status is not read lists every paper that you have not marked as read, including the ones you have not opened yet.

Keep each condition on a vault property as its own row, in a group of All the following are true. The view cannot run when such a condition is:

  • Inside a group of Any of the following are true or None of the following are true. The row shows A condition on a vault property cannot sit inside an "or" or "not" group.
  • In one expression with a Zotero property that || or ! joins, such as vault.rating > 3 || date.year >= 2020. The row shows A condition on a vault property cannot also read a Zotero field. An expression of conditions joined by &&, such as vault.rating > 3 && date.year >= 2020, runs as separate rows would.

For a checkbox property, choose is true or is false. The condition reads vault["done"] == true as an expression.

Search also finds papers by the values of their vault properties, in the Table as in the List and Cards layouts.

Use the same properties in Bases

An Obsidian base reads the same properties of your Literature Notes. This base shows every Literature Note as a card in a Kanban board, with one column for each reading status. It needs Obsidian 1.14 or later.

Save this text as a file named Reading list.base in your vault, or paste it into a code block with the language base in any note:

filters: file.hasProperty("zotero-key")
formulas:
  zotero: 'link("zotero://select/library/items/" + note["zotero-key"], "Open in Zotero")'
views:
  - type: kanban
    name: Reading progress
    groupBy:
      property: note.reading-status
      direction: ASC
    groupOrder:
      - to-read
      - reading
      - read
      - null
    order:
      - file.name
      - note.citekey
      - formula.zotero

file.hasProperty("zotero-key") keeps the Literature Notes, because ZotLit writes zotero-key on each one. A formula reads a name with a hyphen as note["zotero-key"]. Drag a card to another column to change its reading status. The Query View shows the change in its own cells.

The No note rows of the Query View have no card here: a base lists notes, so a paper without a Literature Note does not show.

Group libraries

The zotero formula opens papers from My Library only. For a paper in a group library, zotero-key holds the key followed by g and the group ID, such as ABCD2345g4815. Zotero opens that paper at zotero://select/groups/4815/items/ABCD2345, which the formula does not build.

See also

Last updated on

On this page