this post was submitted on 18 Jun 2023
0 points (NaN% liked)

ObsidianMD

4105 readers
1 users here now

Unofficial Lemmy community for https://obsidian.md/

founded 1 year ago
MODERATORS
 

I love Obsidian for everything but moved to Logseq a while ago because I find it better for handling quotes from books more fluid. However, maybe there's a better way to achieve what I'm trying.

So...I'd like to be able to write specific quotes somewhere and link them to a book. That's pretty easy due to internal links. However, can I somehow write (i.e. into my daily note) the quote, place a #quote [[Link to Bookname]] behind it and then display it (for e.g. with the Dataview plugin inside the note for the book the quote is from?

In Logseq I can do this using their queries and filter for the "nodes" I have a specific link or tag included while leaving out the rest of the page.

My main reason for trying to achieve this is because I don't want to force myself to have my quotes only inside the book's note (maybe 2 quotes of 2 books are connected. Having all quotes of a book inside the book's page prevents me from correctly linking) and I also don't want to create a specific page for that quote because:

  • this would create thousands of files that would at some point have negative performance impacts onto my vault
  • I struggle with naming those files in a good way when creating a file for every note

I mostly want to have this fluid approach of just showing / querying for the quotes I want to query after using tags or something. It's much more flexible so I just write and don't care about the structure or having to plan beforehand which YAML frontmatter to use, etc.

top 3 comments
sorted by: hot top controversial new old
[–] unnoted@lemmy.one 0 points 1 year ago (1 children)

If I'm understanding you correctly, I think I do something similar to track my book reading progress. I log my book reading progress in my daily note, with a [[link to bookname]] and then use dataview to also list all the progress entries inside the note for the book.

on my daily page, I'll have something like this:

## Reading
* [[Tomorrow and Tomorrow and Tomorrow _ Gabrielle Zevin]] - 20%
    really enjoying this book so far! the perspective changes... (paragraph snipped)

(I'm not sure it's obvious above, but I do the four spaces thing to nest a paragraph under the bullet point.)

Then on the page for the book itself, I have this dataview query

```dataview
LIST
regexreplace(replace(L.text, "[[" + this.file.name + "]]", ""), "^[ :-]*", "")
FROM [[]] and "Log"
flatten file.lists as L
WHERE meta(L.section).subpath = "Reading" and contains(L.text, this.file.name)
sort file.name
```

I think for you, you would replace the check I'm doing for the section heading = Reading with a check for the tag instead. The replace and regex business is just so I don't wind up repeating the [[link to bookname]] inside the note for the book, and also to shave off some inconsistent formatting I've used over time. What displays on my book page is something like this:

* 2023-06-09: 20%
    really enjoying this book so far! the perspective changes... (paragraph snipped)

(with a link back to the original daily note)

By the way, I couldn't figure out a way to do this using dataview without using list items (and nesting paragraphs under the list item). I think because dataview indexes list items, but won't necessarily index other blocks of text? (The future version of dataview, datacore does mention supporting queries at the section and block level though.)

Hope this gives you some ideas!

[–] brayd@feddit.de 0 points 1 year ago (1 children)

Yes, this is helpful but still very complicated to have it fluid. Could be something for a plugin that somebody could write, that expands Dataview with this tho

[–] god@sh.itjust.works 1 points 1 year ago

Pioneers have it hardest lol, that's why you guys see a little seen problem and you have to write a bunch of code to do it and propose it be abstracted into a plugin. But if it's a little seen problem, the likelihood of actually getting that plugin is slim unless you yourselves develop it or convince someone to do it. It won't happen spontaneously.