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
Enterto add it. A comma stays part of the item. To remove an item, select its cross, or pressBackspacein the empty field and thenBackspaceagain. In a list,Escapekeeps 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 asvault.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 asvault.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.zoterofile.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
Query file format
Vault properties in order, sort, and filters, and the names they cannot take.
Use query files and query blocks
Create a query file, filter, sort, and group its views, and use the Table layout.
Configure frontmatter properties
Choose which properties ZotLit writes and how an update merges them.
Last updated on