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 project-1
dir
Projects/project-2/Overview.md
… etc
The 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.
w/r/t the 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:
folder-pages:
- ${vault-root}/project-.*/index.md$
- ${vault-root}/idea-.*/index.md$
Which would only treat index.md
files inside a directory that is named project-*
or 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.