This is a very similar concept to page bundles in
hugo. CC: @ Roadie
It’s a fantastic idea and would be an ‘official’ implementation of the work-flow that i’ve already started to create w/ Obsidian.
I have a
Projects vault with each sub-dir being an actual project which leads to:
Projects/project-1/Overview.md (this has many back links to the many other notes in the
Projects/project-2/Overview.md … etc
overview page is usually a quick glance of status (blocked, in progress, back burner…) and any remaining milestones and links to the document where the idea is described and the architecture fleshed out.
zettelkasten work flow, I absolutely expect that future notes for future projects will link to notes in current projects. For example:
projects/project-long-running-thing/2020-03-01_production-issue-with-SomeProcessSpecificMachine.md might describe an issue and eventual solution. It is likely that future projects will later encounter the same or a similar issue.
The reason for using folders is simple:
- it’s how a lot of people think about taxonomies / storing their info and data.
- it’s also much easier for tools and scripts outside of
obsidian.md to manage files this way.
- file systems (and, sync tools!) can choke if there’s a ton of files in one directory. I don’t think that most people will have 100K+ files in one dir, but it’s a potential issue that goes away as soon as you split those 100K files across a few directories.
w/r/t scripts and tools that liive outside of obsiidian:
I can run a script on my
Projects vault and every file that has the string
TODO: $some_string_here will get turned into a todo list item where the tags/project/due-data and other meta data for the task are inferred from the folder paths. This becomes nearly impossible to do in a consistent and sane way unless either:
- every file is forced to have some sort of standard header
- an API / database now holds all of the medadata. This is why i stopped using qOwn Notes.
Either approach starts to infringe on the purity of “you own your notes” idea from the front page.
W/r/t: implementation details
I think a ‘hard-coded’ approach that always assumes 2 levels deep would work, but a better approach would be to set a regex expression to the full file path. Anything that matches this expression get treated as the ‘page’ for that folder.
I can imagine a plugin that has some setting that I would configure like this:
Which would only treat
index.md files inside a directory that is named
idea-* as ‘special’. A file called
templates/index.md would not match the configured regex expressions and so it would not be treated specially.
On a side note, I would love to see that sort of option make it’s way to the template plugin so I can have a new note in a specific path automatically use a given template rather than having to pick which template i want via the command pallet.