Sample Vault for Tracking your reading

Hi everyone, I’ve been working on my Obsidian vault for tracking reading for a while, and thought since I’ve gotten so much help from many people on this forum over the past year, that maybe other people would appreciate this. Or maybe it’ll just give someone ideas for how to do it better :slight_smile:

Here’s a link to the sample vault on Github.

If you have any questions, please let me know, you can also open an issue in the Github repo and/or fork it or make a pull request or whatever.

5 Likes

My Dataview queries are far less intricate. Lots of ideas to learn from in your vault. Thanks for sharing.

Enjoying The Pillars of the Earth? The fourth book in the series, The Evening and The Morning, is a prequel to the first book (as you probably know). If I had known that when I first wandered into Kingsbridge, I would have started with that and read chronologically through the history of the town. (Or is the reference to the book just dummy text in the vault? Doh!)

```dataview
TABLE WITHOUT ID
	Author,
	link(file.link, Alias) AS Title
FROM 
	"2 Book Log"
SORT 
	Author ASC
```

```dataview
TABLE WITHOUT ID
	("![|100](" + Cover + ")") as Cover,
	link(file.link, Alias) AS Title,
	Author,
	DateStarted AS Started,
	DateFinished AS Finished
FROM 
	"2 Book Log"
SORT 
	DateFinished ASC
```

No, I’m actually reading Pillars of Earth. Just lots of other books too haha.

Is that your Dataview Query?

1 Like

Hard enough to keep track of all the folk wandering around Kingsbridge let alone those in other books at the same time.

Yes, adapted to your vault. On every author page, I also use Dataview to pull together all the books by that author. Raw from my vault:

```dataview
TABLE WITHOUT ID
	cover AS Cover,
	file.link AS "Title",
	published AS Published
FROM 
	"books"
WHERE
	author = this.file.link
SORT
	started
	DESC
```

OH, that’s awesome, thanks! I started keeping track of the authors, but I couldn’t think of what to do with them then :slight_smile:

1 Like

I can’t get this.file.link to work. I understand what it’s supposed to do, I think: where auhor is the same as the file name? Or how do you use this?

1 Like

Hello.

Apologies for not replying sooner; not been online.

Not sure how everything works in Dataview, but this is how I can get an author page to list works in your sample vault:

Author page

---
Name: Ken Follett
Years: 
Photo: 
Tags: 
Country:
---

#### Notes

```dataview
TABLE WITHOUT ID
	("![|100](" + Cover + ")") as Cover,
	link(file.link, Alias) AS Title
FROM 
	"1 Currently Reading"
	OR
	"2 Book Log"
WHERE
	author = this.file.link
SORT
	DateStarted
	DESC
```

Book pages

The only thing to change on the book pages is the YAML syntax for:

Author: "[[Ken Follett]]"

And that allows Dataview to curate all the books written by the author whose name is used as the title of the note. Not everyone needs or wants this, of course. I like it as it just gives me another view of what I have read.

In my own notes, I also use the link syntax in the YAML of my author note.

---
title: "[[Ken Follett]]"
---

I think this means that I can use the name as a WikiLink in other Dataview queries. But I really don’t know what I am doing. Others on the forum will be better placed to explain.


An example of where this can help with navigation (query localized for your sample vault):

```dataview
TABLE WITHOUT ID
	("![|100](" + Cover + ")") as Cover,
	link(file.link, Alias) AS Title,
	Author,
	DateStarted AS Started,
	DateFinished AS Finished
FROM 
	"1 Currently Reading"
	OR
	"2 Book Log"
WHERE 
	file.name !="0 Currently Reading"
SORT 
	Author 
	Asc	
```

Oh wow, making the author clickable has been on my ToDo for a while, awesome!! Thanks! Now I just have to go through all my books and change it to this new format haha.

Currently I have a link in the Note itself (not the frontmatter), as [[lastname, firstname]], which has the added bonus of being alphabetic. But honestly I like the clickable author more than being able to alphabetize it. Thanks!

1 Like

I just sort by first name, but understand your point. Guess multiple fields can be used to get the same output.

Wonder if that is possible with VS Code (or similar) and some regex.

Find:

---
Author: <regex magic for a capture group>

Replace

---
Author: "[[<regex magic to repeat the capture group>]]"

Or this multi-stage, hacky search and replace works when restricted to relevant folders:

Find:

---
Author: 

Replace:

---
Author: "[[

and then …

Find:

<PARAGRAPH RETURN>
Alias:

Replace:

]]"<PARAGRAPH RETURN>
Alias:

For anything major like this, making a backup before unleashing VS Code can save a lot of tears and swearing.

Hey, I actually found a solution where I don’t need to figure out regex:

Instead of this.file.link we can use

WHERE Author = this.Name

This will compare the author note’s key Name values to the book notes key Author values, which has the same effect, but without having to add the "[[]]" to all the author names :slight_smile:

This has the benefit that I don’t need to rename all my author files.

1 Like

:flushed: Cannot wait until I am back at a Mac to try that. Thanks for sharing. :+1: