Tracking patterns of activity through dataview

Life is weird, and I’m no exception. And when I set my mind to working on something, what I usually get is pretty weird to. Like when I decide that I need a way to track things without modifying my process.

Don’t get me wrong—I’ve always loved the idea of tracking progress on things. While I haven’t read books on the subject, I’ve struggled with my productivity enough over the years to understand just how necessary it is to help me stay on top of a given project. My problem is that I’m terrible at manual tracking. I’ve tried numerous times, used at least half a dozen different task management apps, checked out a small selection of project management apps… and have walked away from all of them, disappointed at either the sheer complexity of the app or how little can be done automatically. For me, the way all of them have focused on needing to manually track everything wasn’t only a hinderance—it was an active problem that made my inability to get the larger tasks done even more pronounced.

As I’ve come to realize, in no small part thanks to my participation in NaNoWriMo 2021, I really need something to address this… with the rather interesting caveat of not needing to change my process for this, since changing it clearly hasn’t worked for me. To do this, I decided to write out my process on Jan 2:

  • Stories that are Not Ready live in a single folder (for me, WIP)
  • Ready stories get moved to a different folder (no specific folder in my case)
  • I don’t start adding certain parts to stories until after the first draft is complete and I’ve started editing
  • All content has a Type metadata key, and many have a Subtype as well
  • Finished stories use specific values for the publish metadata supported directly by Obsidian; this isn’t updated until everything else is finished

As it turns out, this creates some fairly clear boundaries for when I’m done with a given story—exactly what I needed to programmatically check my work for their status without adding anything new to accomplish this.

The next day, I had a prototype dataview view set up to give me a rudimentary overview of what I’m wanting. I’ve since spent the last three days working on this in more depth to produce something that can be used for more than just my stories, and I’m fairly confident that it’s now very close to accomplishing exactly that:

Pattern Tracking automatically and dynamically determines the status based on my personal process above. Currently, it relies on a few things for to work correctly:

  1. The files must use some form of metadata to track its “type” and “subtype”; these keys and expected values are configurable. It presently only supports exactly two subtypes.
  2. Whether a given file is broadly considered “not ready” or “ready” relies on it knowing where either group is located; these are also configurable. It only needs one, but both can be provided. If you only need one, the other should be false, null, or undefined for now.
  3. The requirement of the publish key to determine the difference between “done” and “ready” is currently hard-coded in.

It’s my goal to de-couple this from my process as much as possible while retaining the same functionality, so some of these requirements will change in the future to make them generally more applicable to other workflows than mine. Some will take longer than others, however—particularly points 1 and 2. They’ll require a means to build the logic based on the input configuration (conveniently located in two places in the readme, and at the top of the view.js file!) which will take me some time to accomplish properly.

If you decide to give it a try, let me know! I’d love to know any features you’d like to see, or any issues you come across while using it. :purple_heart:


I would like to know what font you have configured. It is awesome!