cript>

Taking Note in Emacs: A Move to Denote

I’ve been writing in emacs org-mode for a couple of decades now. I wouldn’t call myself an emacs expert, and definitely not an elisp expert; instead, I’d say that know just enough to maintain an emacs environment that works for me and not quite enough to escape the occasional emacs storm. On the whole, it works.

I’ve tried several different ways to write and then make use of notes on what I’m reading. First it was simple org-mode headings, one for each book, with the notes about that book nested in subheadings under the main heading. Then I spent a year or so trying to make org-roam work for me. I know that others find that a wonderful environment, but somehow I never felt at home in it. I have lots of notes in an org-roam database, but I’ve not been able to make good use of them.

I read about denote (by Protesilaos Stavrou, otherwise known as Prot) when it first came out. I was intrigued then, but I was still trying to find my way in org-roam, and decided that I should stay put. I changed my mind about six months ago, when I couldn’t find a note that I just knew that I had recorded in org-roam. That happened on a day when I was frustrated by other tech challenges as well; perhaps that’s why this rather small bottleneck pushed me over the edge.

So, I installed denote, and began recording my notes there. I was really happy with the first week or so of note-taking, and so I decided to move my almost-daily journeying practice to denote as well. Over the past six months, I’ve been recording all of my reading notes and writing my journal entries in denote, using denote’s file–naming and tagging scheme.

I’ve also been importing some of my old org-roam notes into denote. Prot makes that very easy with a script. One challenge for me there is that the template I was using in org-roam recorded the date I made the note in the note’s body (e.g., “Entered 2022-12-15 Thu 09:58”), but it was simple enough to write a script that iterates through the file, putting the timestamp for each entry in a CREATED property. (Yes, I’m a bit anal, but I find it helpful to see just when I took a particular note.) I’m not importing all of those org-roam notes; if I have notes on a book I read several years ago that seems relevant to work I’m doing now, I import those notes, re-reading and tagging them as I go. It’s a good way to remind myself of what I read, and I see connections with what I’m reading now that I might have missed otherwise.

For the most part, my use of denote so far is rather simple. But I’ve stumbled into one practice that I think others might find helpful. As I take notes on a book I’m reading (e.g., Rebecca Solnit’s Orwell’s Roses, published in 2022), one of the tags I add to each note is “solnit2022”. Then I create what Prot calls a “meta” file named “Solnit2022: Orwell’s Roses” and insert in this file an org dynamic block:

#+BEGIN: denote-links :regexp "_solnit2022" :sort-by-component signature

#+END

If I put point on that #+BEGIN line and press C-c C-c, the block is populated with links to all of the notes I took on that book. Note the sort-by-component. I’m using (or, as more dedicated Zettelkasten practitioners might say, misusing) the signature component of the file name, inserting there the page number for each note. So now I have a list of links to my notes on the book, organized by page number. I can have a similarly organized list of the notes themselves by using a “denote-files” block instead of a denote-links block. After I’ve finished the book, I write a couple of paragraphs above that dynamic block listing what I see as the key takeaways from my reading. (I then add these summary comments to my reading log.)

Another step – I decided to import all my old journal entries into denote. My initial motivation for this was more to read through those journal entries from years ago than simply to have them as denote files, but it’s been rather interesting to relive old days, and I’ve also found comments about reading that I’ve copied into separate denote files and tagged appropriately.

And this brings me to my last point: while I find denote’s file naming and tagging scheme to be very helpful and even intuitive, I think that my working through old notes and journals has been very valuable in itself. I’m planning now to build some sort of routine review of my reading past into my regular practice. At the very least, I could invoke ‘denote-explore-random-note‘ from Peter Prevos’s denote-explorer package.

comments