Advanced Emotions Tracker - request

Hi all.
What I’m trying to do is to track and show the main emotion I had during the day.
In order to do so, I have defined a checklist to select the emotion; namely

### BePresent
- [ ] Joy
- [ ] Scared
- [ ] Surprised

The checklist is in each of the Daily notes I’m taking, which has the filename as YYYY-MM-DD.

I have been able to set up a table with dataview to list for each day a row with all the potential emotions, and the selected one (highlighted with an icon colored based on the emotion).

However, I’m still far from what I’d like to have which is something similar to what is scheduled in the following picture:

  • a row for each month
  • a column for each day of the month
  • an icon in the intersection whose color represents the main emotion of the day

Is it something I can realize with Obsidian?
Do you have any suggestions?

Thanks a lot

I do believe it’s doable, but I also think it would require some javascript coding within a dataviewjs script. I imagine doing something like the following:

  • Make a query to get each of the emotion of the day into a list
  • Define a yearArray, with rows for the months, and an empty array of 31 entries for each month
  • Loop on all the emotionOfTheDay entires, pick the date apart, and place into the corresponding yearArray row and column
  • Present the resulting array using dv.table()

Give it a go, and see how far you get along the road, and come back for advice.

Another option could be to actually generate the image directly, but that would require image manipulation libraries, which I’m not sure how readily available are from within Obsidian.

1 Like

Another idea for thought would be to change the data input to using decorated tasks instead of multiple rows. Imaging dedicating various letters to the various moods, and then let the text be a description of why you’re in that emotion. Imaging the following tasks spread out into your daily notes:

- [J] Found the love of my life 
- [s] Got the monthly bills, but no money to pay them
- [S] My friends surprised me with a birthday party

Using Checklists - Minimal Documentation you can decorate tasks with various icons, and I foresee having icons for “J - Joy”, “s - scared”, “S - Surprised” through redefinitions of the icons used when decorating the tasks.

This could also be combined with using the Quick Add plugin to have a dedicated macro to inserting the emotion of the day through a hotkey, where you can choose the emotion from a list (which would also help to not having to remember each one-letter combination for an emotion).

The main benefit from doing it this other way, would be two-folder:

  • You get just one line for the emotion of the day
  • You can define why that is the emotion of the day
  • Your queries would be simpler, as you can filter out tasks with your chosen letters for emotion, and then simply use task.status to get the actual emotion letter
  • It’s also reasonably easy to collate these into a monthly summary, and you’ll get to see the reasons of your emotions during the month

This doesn’t answer your main request though, I just wanted to share something I’ve been doing lately along similar lines, although I don’t have just one emotion pr day, and don’t gather them up into an image like you want to.

1 Like