Best way to manage saved quotes?

Hey!

Just wondering if anyone here have a good system for managing saved quotes? I often save quotes from articles or interviews I read, something I perhaps heard on the radio and quickly jotted down etc. and I cannot come up with a good system to manage it all.

I have a book note system that works well for me but that’s because I take notes/ratings for all the books I read therefore I have a .txt/.md file for every book I read where I can take notes, highlight stuff and whatever else.

At the moment I have a folder in Obsidian that is just called “Quotes” where I dump anything I want to save. This folder is filled with “Untitled” files or files that are named after the start of the quote… complete mess.

Would appreciate if anyone has any ideas that they can share.

Thanks!

2 Likes

I keep daily journals and put my quotes in the journals using the format:
Quote:: I sleep like a baby.. I wake up screaming every morning around 3am. -- Tommy Cooper
I then have a “Quotes.md” file with a dataviewjs block that collects them all in a list with a link to the source journal:

```dataviewjs
let quotes = [];

dv.pages()
	.where(page => page.quote)
	.forEach(page => {
		dv.array(page.quote)
			.forEach(quote => {
				quotes.push({
					message: quote,
					page: page
				})
				})})
dv.table(["Quote","Page"],quotes
.map(quotes => [quotes.message,quotes.page.file.link]));
```
3 Likes

That quote is a keeper:) It’s me!

2 Likes

I had the same challenge. Over the course of the last couple of months I’ve groomed my entire vault in an effort to assign properties.

I gave files a name - those that contained just a quote I would name them a snippet from the quote itself

In properties, front matter yaml, I created a tags property with the name quote.

If the quote was related to some topic I’m passionate about, I assigned a list property called pertaining with a word or phrase that is that topic(s).

for example, using the above quote jewell, the title “Tommy Cooper Quote on Sleep”. Tag would be “quote” The pertaining would be “Tommy Cooper” and another “sleep” and maybe another “rage”.

Let us know which path you take, cheers!

1 Like

Thank you both for replying. I guess I could actually apply both solutions here - adding properties to files is a great idea and somewhat future-proofing but I could also use dataview plugin to have all the quotes displayed on a single page. I’m an complete novice when it comes to writing code so this might be the problem haha. I’m going to try though!

What annoys me about properties is that if you assign multiple tags, you are not able to search for two (or more) matching. So for example, I already have properties applied to my book notes. Example of tags would be: book fiction historical-fiction 1980s favourite - now a lot of these tags will overlap, “book” being the primary one. If I search for [“tags”:book I will get thousand results so it is of no use to me. Is there something I’m missing here? I would like to be able to search for lets say: book + fiction + thriller - seems logical to narrow down my search results as much as possible.

1 Like

This works, there seems to be an implied AND. If you want both use the same with OR in between. And it appears the double quotes around the property type don’t matter, at least for tags…

[tags:writing] [tags:essay] [tags:sleep]

[“tags”:writing] OR [“tags”:essay]

1 Like

It does work indeed, thank you very much. What I was doing wrong was adding # to every tag I was searching… I did not realise that the new properties feature does not actually use # in the source file. This actually makes me feel a little bit uneasy about it now because it is the exact opposite of future-proofing. # is readable as a tag in every markdown editor, the way YAML is structured is not. I put a lot of work to convert my files to include properties so it is too late to go back but I must admit, I dont like this. My own fault for not knowing how YAML works I guess.

Thank you for sharing. And here is my script version:

TABLE WITHOUT ID
	author AS Author, 
	quote AS Quote, 
	file.link as File
FROM #type/quote and #theme/sketchnotes 
SORT author ASC
2 Likes

Here’s a summary of my approach:

Each quotation

Each quotation is within its own file in a folder (Collections/Quotations). The name is either the quote or an abbreviated form if it’s very long.

I use properties to capture the actual quote text and quote author. The body of the file is as follows and simply pulls in the data from the properties:


> `=this.QuoteText`

— **`=this.QuoteAuthor`**

When I create a new quote file the process is:

  • Create a file in the right folder named with the quote (or some of it)
  • Add the full quote to the QuoteText property
  • Add the quote author/source to the QuoteAuthor property.

I use a quote file template and QuickAdd to create the file but there are other ways to do this.

I use two other properties (also in the template) in each individual quotation file:

  • Pinned
  • Archived

These are used in the dataview queries (see below). It just provides some flexibility when viewing lots of quotes together: A quote can either be in New or Archived. Can be optionally Flagged. And all are viewable in the All section

Lists of quotations

A file named ‘Quotations’ which contains dataview queries:

[[#Pinned]] • [[#New]] • [[#Archive]] • [[#All]]

---
## Pinned

```dataview
LIST WITHOUT ID "[[" + file.name + "|" + truncate(QuoteText,500) + "]]" + "<br />&emsp;&emsp;&emsp;**— <small>" + upper(string(QuoteAuthor)) + "** " +  "</small>" + "<br /><br />" 
FROM "Collections/Quotations"
WHERE Pinned = true
SORT file.link asc

New

LIST WITHOUT ID "[[" + file.name + "|" + truncate(QuoteText,500) + "]]" + "<br />&emsp;&emsp;&emsp;**— <small>" + upper(string(QuoteAuthor)) + "** " +  "</small>" + "<br /><br />" 
FROM "Collections/Quotations"
WHERE (Archived = false OR Archived = null)
SORT file.link asc

Archive

LIST WITHOUT ID "[[" + file.name + "|" + truncate(QuoteText,80) + "]]" + "<small> (**" + upper(string(QuoteAuthor)) + "**)</small>"
FROM "Collections/Quotations"
WHERE Archived = true
SORT file.link asc

All

LIST WITHOUT ID "[[" + file.name + "|" + truncate(QuoteText,500) + "]]" + "<br />&emsp;&emsp;&emsp;**— <small>" + upper(string(QuoteAuthor)) + "** " +  "</small>" + "<br /><br />" 
FROM "Collections/Quotations"
SORT file.link asc

Each quotation ‘author’ is usually a link to a ‘person’ file. From the dataview lists it’s possible to click on a quotation to view the individual quotation file, or an author to view the author file.

Your in good company.

We can still have tags in the body of notes, #quote for example is still a tag.

YAML has traditionally been used to interface a file (note) with some external application, like publishing to a web site.

With obsidian, those properties in the top block (yaml frontmatter) are objects with attributes, type for example. So, since a tag is given a type of tags, we not longer have to include the # for tags we want to assign properties to a note; it’s assumed.

I expect we’ll see some really nice functionality because of this. But it is confusing, I mutter curse words prolifically during my vault grooming:)

Best wishes.

As simple as possible.

If the quote is from a source I’m reading (book/paper) then I do what you do.

If it’s a standalone maxim I read outside of its source or if the source is untraceable, I add it as it’s own file named after a summary in my own words

I add in-line tags for #quote, #topic1, #topic2 and use tag search to find what I want.

This could be done on the basis of one file-per-quote or all quotes in a single file, but it depends on whether you want to use links or not, where one-file-per-quote lets you link to individual quotes, but one file for all quote requires block linking which, in Obsidian, I don’t love.

1 Like

Actually tags are not standard. The only editors that support tags are Notion, Obsidian, Jekyll, and Pandox. Of those Notion and Obsidian are the only ones that allow tags inline.

Jekyll and Pandox markdown only supporrt tags in yaml frontmatter.

Thank you for your reply. This solution is something I have been leaning towards the most to be honest because I’m not good with dataview. I’m considering using nested hashtags for this only so I can filter the quotes of particular topic I’m looking for easily. I wish multi-selection was possible in tag wrangler.

1 Like

Yes, I guess you’re indeed correct, sometimes I’m just grumpy and reluctant to change. It actually took me years to finally start using tags in my files to begin with lol.

is there any point using two systems at the same time? (yaml tags and classic #)

1 Like

Nested tags are one way to add detailed inline metadata and if you want to include more details together with exact target information, then new file with properties is extremely powerful entity in your Obsidian vault. Obviously throwing quick inline metadata requires less effort but with Note composer core plugin you can easily characterize any part of your note.

How do you find stuff in your vault? Do you use core search some or other plugin?

Reason I ask… for years I did not link or tag anything.

All I did was place the word quote somewhere close to the stashed quote. Something like this:

quote

“Some day I’ll get sleep”
– sleep deprived

From there I’d have a couple of built in options to find it:

  1. Use the built in search, just type “quote” and any file with that word shows up in the results.

  2. A second option is have a note called quote. At the bottom of that note is section Unlinked mentions. It provides the same thing.

See if some of this resonates.

2 Likes

This is an awesome method for keeping quotes handy. One question, how could I create a list of just one author? Thanks!