Zettel templates
Besides the ones that can be seen in Christian and Sascha's videos, does anyone have any good suggestions for (meta-) data structures to include in a standard Zettel template? Once I've settled on a structure, I'd like to set it up as a TextExpander snippet.
Howdy, Stranger!
Comments
I use a pretty simple header like this:
Title:
ID:
Tags:
Citations, if there are any, go at the end in Markdown format (referring to a location in Bibdesk). And the rest is more or less freeform, depending on the topic. I don't if that helps, but there it is.
Thanks for starting this important thread.
If you have followed the blog for a while you will probably have seen that Sascha and Christian's use of zettel naming+data structures has changed with time For instance, in the latest videos they seem to have dropped the § sign.
I went for a barebones structure that goes like this. A note title that is the filename too: §201710190602 Note Title
And the note contains:
§201710190602 Note Title
tag1 #tag2 #tag3
[content]
[bibliography]
My rationale is the following, I want an extremely minimal note that is still recognisable as a zettel note. The § sign shows me it is a zettel and the title of the note is already evident within the text (I only use the § character for zettel notes). I can infer all the information I need from that, so I found no need for me to add extra text to state what is a title or what is a tag. That way I can focus on the writing the content immediately. I also don't use internal note links, as I would rather go for strict atomicity (granularity enhances connectivity, etc).
For what its worth, my headers are as follow...
Note title (the
h1
) and file name are the same, filled with a macro.The
source :
key is part of my template but often left empty. It's probably better practice to link source right in the text. I'm still experimenting on this.The idea is the format is publishable as is. Thanks to MMD metadata, the header is hidden and the text starts with the title.
My autotext snippet still looked like this until today:
I never switched from readable date to repeating the ID in the header. I have just now fixed this Like @maclm I stick to MultiMarkdown metadata for easier processing, though I never ever export my Zettel notes as PDF/HTML/... directly. I always paste them together and rewrite the outcome. So the benefit of processing is negligible. YAML headers would be just as easy to rip out with any scripting language as preprocessor.
For being complete: In recent posts, I suggested to simply repeat ID + Title in the first line of text because this is easy on the eyes and also widely recognized by Simplenote-compatible apps, as opposed to MultiMarkdown.
Author at Zettelkasten.de • https://christiantietze.de/
If using Sublime Text or Atom, you can create snippets for your most commonly used templates.
For example using @jemscott template we can create
new_zettel.sublime-snippet
and save it in the folder of Tools > Browse Packages > User and we can use it by typingnz
then pressing Tab and Sublime will auto-fill the template for us. Pressing Tab again will jump between the title, ID and tag fields.Can't help but wonder what the difference is between your tags prefixed with # and with @?
I think tags prefixed with
@
are GTD related?Document title:
Document:
The header I just created by typing ;yy because I have that set up in keyboard maestro
I think in dates like 2017-11-09 so the uid also works for me as a creation date. The three dashes are for some YAML parsers of metadata. I think I had one piece of software that wanted them but no others have minded them so I just left them as a standard.
"#foo" tags are for ones that I want to be clickable/searchable using The Archive and 1Writer on ios (which recognizes #tags but not @tags). "bar" tags (without the #) are for one-off keywords that aren't in the text but that I don't want crowding my list of tags in 1Writer.
"§§" is a tag that means "working active document or draft". I have a search for that in The Archive for when I want to see what things I haven't worked on recently enough. The § is a leftover from misunderstanding how Christian and Sascha were using it; the important thing is that it's a string that will never appear in the actual text of my writing.
Citations, if there are any, are in markdown format. I mostly write fiction so that's less often important to me.
@tag
format comes from Taskpaper/FoldingText. Those apps make them clickable and support attribute in the form@tag(attribute)
like@done(2017-11-10)
or@waiting(Joe)
. I use that format to indicate the status of a document (or part of it). Here are a few examples :@to_review
, for stuff that needs a re-work,@reviewed(2017-11-10)
for archive stuff that's worth keeping,@obsolete
for something reviewed I'm not yet ready to trash for some reason.I can also think of
@draft
and@final
but I don't use them personally.On the other hand, I use
#tag
format (like anybody else, I suppose) to group notes by theme (the subject being placed in the file name/title).The tag index from 1Writer @mediapathic mentioned is something I wish to see get added at some point in The Archive.
I for one don't like to see the meta tags in my markdown preview (which I use often). I still stuck with nvALT but looks like I'll switch to vim (still learning...) sooner or later - and this works with both.
Anyway, with a snippet from TextExpander I get:
<!--- tit: 201801011H040123 tag: # ref: [[]] -->
After the timestamp I put my title. Tags and refs can be added at any time later.
<!--- tit: 201801011H040123 Some Title Here tag: #tag 1 #tag2 #tag3 ref: [[Reference Note 1]] [[Reference Note 2]] -->
This way in my markdown preview the meta tags are invisible and my Zettel text stays without disturbing links everywhere inside - as I like it.
BTW: Happy New Year to all of you!
Best -
Chris
P.S.: Here is the snippet for TextExpander:
<!--- tit: %Y%m%d%eH%M%m%S tag: # ref: [[]] -->
FWIW, I've been playing with marking words in the body text of my notes with the 'key' emoji character (which apparently I can't actually enter in these comments) to designate them as keywords rather than having a separate explicit "tags" line. I suppose a Twitter-style #hashtag would work just as well.
Ok, so now I'm officially down to this Typinator snippet:
Which makes my notes look like this:
Author at Zettelkasten.de • https://christiantietze.de/
Looks very familiar...
I am a Zettler
No more out of the box script compatibility, y'know ...
Author at Zettelkasten.de • https://christiantietze.de/
Coming back to this as I try to make a TextExpander or Alfred snippet to create a note, I can't seem to find a way to create both the filename and the title within the note in the same snippet. Any clues gratefully received.
I personally use aText which is way cheaper and admittedly way less powerful than TextExpander but managed to achieve what you seek to accomplish using [ESC] and [ENTER] keys.
I’ll do my best to explain this from iOS.
I start with manually hitting [ESC] to get to the omnibar. Then type my snippet
;;;
which does the following using some text fields to populate some<$variables>
:The
UID
andtags
lines are for metadata but the key here for you is to use your snippet to type [ENTER] at some point to create the new note.Hope that helps.
Thanks for the link to aText; I haven't upgraded TextExpander yet because Alfred does almost all I need and I don't need another subscription.
I have something similar to you. But I end up copying that UID and your $subject into the filename field. I haven't seen a way yet to accomplish both with one macro. (I haven't tried chaining them, Maybe that's the answer.)
In the end, I create the filename by hand, select all, copy, move to the body of the note and trigger this Alfred snippet:
I'll probably change this as I get used to it, but for now it works just fine.