As I mentioned before I started using the fantastic note-taking tool Dendron a while back. It’s “hierarchy-first” approach and in particular the ease to find notes not only to create them is a big improvement over my previous attempts at note-taking with tools ranging from Evernote, and OneNote to plain-text tools like simplenote and of course org-mode.
In all my previous attempts I struggled with consistency in the taxonomy, i.e. making sure similar things are named similar. Tiago Forte’s P.A.R.A methods also suggests this. Among other useful functionality Dendron supports this via schemas. For me they serve two useful purposes:
- consistency
- use of templates
Over the last months I created a number of them and share them here.
Initially I just copied some of them from the Dendron Wiki and then built additional ones based on these examples. Here are some descriptions on what schemas I use and how I create additional ones.
bigdata.schema.yml
,cloud.schema.yml
,productivity.schema.yml
andsecurity.schema.yml
: these are topics I’m interested in and I want to specifically collect the notes from books on these subjects.daily.schema.yml
: this is my most used schema. It defines my daily schema and on top provides templates for my daily notes, for meetings I attend and for my weekly review which follows GTD.
The way I go about creating a new schema is quite simple. I start from a generic skeleton like this
version: 1
schemas:
- id:
desc:
parent: root
namespace: true
children:
- books
- id: books
desc:
namespace: true
id contains the name of the hierarchy such as the ones above and I add a description what it is about. Since I like to read books on subjects I’m interested in I always add a child item books
. This requires to add another id books
in the schema. The main topic receives the attribute parent: root
to indiecate that this is a top level hierarchy. All other id items can show up as children. This can be nested as you can see in the daily.schema.yml
file.
As an example if I were to start collecting notes on leadership the result would be a file called leadership.schema.yml
with the content
version: 1
schemas:
- id: leadership
desc: My notes on leadership topics
parent: root
namespace: true
children:
- books
- id: books
desc: leadership books
namespace: true
If further patterns emerge I might add additional children to it. This usually happens when I refactor the hierarchy. As an example take a look at the cloud.schema.yml
file where I added children for the main cloud providers (AWS, Azure and GCP) and main technologies (Kubernetes, Cloud Native).
The other useful feature schmas support are templates. If I add an item like
template:
id: template.daily
type: note
to an entry magic happens 😄. Whenever I create a new note that applies to this schema the content of the file template.daily
is added to the new content. This file needs to exist as a normal note for this to work but then it’s very useful. I use it for a structure of my daily notes, for meeting notes and my weekly review.