I started journaling in 2009 on LiveJournal.com There I had a private journal that included titles, hashtags, emotions and dates separate from the title. I have migrated my journal many times to different systems and I really like the Markdown editors. When I found Obsidian I instantly fell in love with it and the idea of linking my notes. It solves an issue I have with all of my notes which is the strict folder structure constrains notes too much. My Journal however I want to be very structured as it is a timeline of my life and my narrative.
I see a lot of people talk about the book “How to take Smart Notes” and it sounds there is a lot of great ideas that I would like to put into my journal. The main problem I have with using daily notes is that you have to name your markdown notes as only the date.
Structure of my journal currently.
Below is the structure of my notes, and folders up to the month (I don’t put each post in a folder ). I did this so that the folder structure is clean and the graph view looks nice.
Journal
J 2022
J 2022-10
1 {Journal Title}
1 {Journal Title 2}
17 {Journal Title}
2022-10 Gratitude
2022-10 Retrospective
The reason I put the day in front of the title of the post is so that is sorted in the folder. I want my journal posts to have a title because I actually do reference them, partially so that can link back to an event that I am talking about but also as a shorthand for writing. When I reference [[30 My Favorite Story]] I can just talk about it without going into every detail of my favorite story (which is nearly 2,000 words), while giving me the ability to go back to the note for reference if needed. I could not do that if that note was named 2020-09-30.
What I’m trying to do
I would like to leverage some of the power of what people do with their daily notes. For example, most of my journal posts have a mood section. I think it would be really cool for my monthly post and yearly posts to have a script that looks for this section and graph out my mood. It would be cool to do the same for the gratitude section, and prayer/answered prayer list.
I guess the main thing I would like is for the title of my journal posts to have unique titles, but all the plugins seem to need daily notes to be formatted as yyyy-mm-dd or whatever.
It might also help to have date-only pages that link to that day’s entries.
I keep a note for each day, named with only the date. In those notes I put single-line entries that start with the date, time, and entry-type tag (#logBody, #logMedia, etc). If the entry takes more than a paragraph, I summarize it and link to a separate file containing the full text (and the timestamp and tags again). I name the separate file with the date followed by a title (“2021-09-27 Obsidian dream”).
I don’t think you need to change your filenames to do this. I believe DataView can do it (tho I don’t use DataView). I’m pretty sure an embedded search could do it too, tho the search query will be a little gnarly.
(You could also call it “2020-09-30 My Favourite Story” which is the way that I do it. That way the note title is unique across all months and years, which is not necessarily the case with just “30”.)
However, you can easily achieve what you want to do with your current folder and file structure, no changes at all are necessary.
You’ll want to install Dataview to let you query and return the posts from all years, and filter them as you wish.
Here’s a working demo vault you download which will show how everything works. Open the “Dataview demo” page in the root folder.
And here’s the code used to automtically create the summary note using your own folder structure:
```dataviewjs
// Get the full list of daily journal entries, and add some of our own metadata:
// the date of the entry (stored in "moment" format), and the title
const pages = dv.pages('"Journal"')
.filter(x => x.file.name.match(/^\d{1,2}\s/) && x.file.path.match(/\/J \d{4}-\d{2}\//))
.array()
.map(page => {
const yearMonth = page.file.path.match(/\/J (\d{4}-\d{2})\//)
const day = page.file.name.match(/^(\d+)\s+(.*)/)
return {
date: moment(yearMonth[1] + '-' + day[1]),
name: day[2],
page: page
}
})
.sort((a, b) => b.date - a.date) // sort by date descending
// Make a table of all entries in chronological order
const chron = pages.map(x => {
return [x.date.format('dddd Do MMMM, YYYY'), `[[${x.page.file.path}|${x.name}]]`]
})
dv.header(2, 'Show me a list of all Journal entries, in descending chronological order')
dv.table(['Date', 'Name'], chron)
dv.paragraph('.')
// Show me a table of moods
const moods = pages.filter(x => x.page.mood)
.map(x => {
return [x.page.file.link, x.page.mood]
})
dv.header(2, 'Show me a list of all Journal entries which have moods recorded, using their original titles')
dv.table(['Entry', 'Mood'], moods)
```
So using Periodic Notes you create a date note which will be recognized by plugins. Then if an entry gets to large you create a new linked note with “yyyy-mm-dd Title”?
So for me I would use the create daily note button, populate it with some of the awesome things I see on Youtube, then link to something If I want to title a note.
Journal
J 2022
J 2022-10
2020-09-30
2020-09-30 My Favourite Story
Does Periodic notes allow you to create notes in a formatted folder structure? So on Oct-31 it puts that days note in 2022-10, and on Nov-1 it would put that days note in 2022-11? Or is it simply dump all notes here? not a huge deal to clean up latter. But it would be nice to automate that as well.
Ok thanks guys I will look into Dataview to achive the other things. Thank you Alan for the example projects.
That’s right. You can put short entries in their own files too, if you like, and have only links in the daily note; I don’t, but it’s just a preference.
Yes. In the settings’ “Format” field for the note name you can include slashes for folders, like “YYYY/MM/YYYY-MM-DD”.
Periodic Notes can also do things like weekly or monthly notes. I used to use weekly notes for less frequent, more interesting entries, then stopped using them, and am now starting to use them for planning and review.