How I manage my reading shelf

Why I put this together

I was very intrigued by Danny Hatcher’s book managment method, but I found that the steps to create and add each book to the canvas created too much friction for me to use it. So I used some Templater code to automate the process as much as possible. I’m sharing this in case it makes life easier for other people too.

Plugins used

Core

Canvas

Community

Templater
Metadata Menu
Book Search
Folder Notes

How it works

Note Creation

I use Book Search to find a book that I’m interested in reading. It uses a Templater template set in the Book Search plugin settings.

Putting file in the correct location

<%*
  const baseFolder = '/Efforts/'
  const filename = tp.file.title
  const newFolder = `${baseFolder}/${filename}/`
  console.log(baseFolder, filename, newFolder)

  await tp.file.move(newFolder + tp.file.title)
%>

I use ACE folder structure, but you can use this to put your notes wherever they need to go. baseFolder can be several levels deep if need be. The important thing is that it be separate from filename.

Folder & Canvas Trigger

[[Reading Map.canvas]]<% tp.file.cursor(1) %>

... the rest of the note ...

<%*
tp.hooks.on_all_templates_executed(() => {
  app.commands.executeCommandById("file-explorer:reveal-active-file");
  app.commands.executeCommandById("editor:open-link-in-new-split");
  app.commands.executeCommandById("folder-notes:create-folder-note-for-current-folder");
});
-%>

Templater normally executes all code at once. The exception is a “hook”. This block needs to be a second stage of code so that the rest of it is sorted out. This block does several things at once. In order of the lines of code, this block:

  • Reveals the book note in the file explorer
  • Opens my “reading map” (based on Hatcher’s) on half of my screen
  • Uses Folder Notes to create a folder for this note. I put my atomic reading notes, you can skip this if you zettel your notes instead.

I do this because it lays everything out for me. Now, I can simply drag the file from the file explorer into the Reading Map so that it can be prioritized, and it can have its MetaData correctly categorized. Then I can close the map or do whatever else I need to while it’s there.

I’ve been checking in on my map whenever I add a new book, but you could add a task to update it on a regular basis. If folks want my entire book note I’m happy to provide that, I do have a QuickAdd system for how I add my atomic notes as well.

My projects work in a very similar way, with their own canvas & template. If folks have questions about that specifically, I’m also happy to answer those questions.