Zettelkasten Forum


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.

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).

  • edited October 2017

    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:

    Title:
    Date: 2017-11-02 14:16
    Keywords: 
    

    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/

  • edited November 2017

    @Eurobubba said:
    Once I've settled on a structure, I'd like to set it up as a TextExpander snippet.

    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 typing nz then pressing Tab and Sublime will auto-fill the template for us. Pressing Tab again will jump between the title, ID and tag fields.

    <snippet>
      <content><![CDATA[title: ${1:title}
    id: $2
    tags: #${3:tag}]]></content>
      <tabTrigger>nz</tabTrigger>
      <scope>text.plain, text.html.markdown</scope>
      <description>New Zettel</description>
    </snippet>
    
  • UID : 20171030_213001
    tags : #smapletag @othertag
    source : http://some_url

    Can't help but wonder what the difference is between your tags prefixed with # and with @?

  • @Eurobubba said:

    UID : 20171030_213001
    tags : #smapletag @othertag
    source : http://some_url

    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:

    20171191231 Some things about other things
    

    Document:

    ---
    uid: 201711091231
    tags:  #foo, bar, §§
    ---
    
    [[20171191141]] a previous note about other things
    
    # Some things about other things 
    
    Things. Things are things. *points to mountains, points to deer*
    
    

    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.

  • edited November 2017

    @Eurobubba said:
    Can't help but wonder what the difference is between your tags prefixed with # and with @?

    @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.

  • edited January 2018

    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: [[]] -->

  • edited January 2018

    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:

    # {YYYY}{MM}{DD}{h024}{m} {^}
    

    Which makes my notes look like this:

    # 201802220853 RxSwift flatMap vs concatMap
    #rxswift #concurrency
    
    RxSwift's `flatMap` maps each of the sub-sequence's elements back to the root level sequence. But it interleaves the results.
    ...
    

    Author at Zettelkasten.de • https://christiantietze.de/

  • @ctietze said:
    Ok, so now I'm officially down to this Typinator snippet:

    # {YYYY}{MM}{DD}{h024}{m} {^}
    

    Which makes my notes look like this:

    # 201802220853 RxSwift flatMap vs concatMap
    #rxswift #concurrency
    
    RxSwift's `flatMap` maps each of the sub-sequence's elements back to the root level sequence. But it interleaves the results.
    ...
    

    Looks very familiar... :wink:

    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.

  • edited November 2018

    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>:

    <$subject>TextField [ENTER]
    UID: <$date:yyMMdd_HHmm>
    tags: <$tags>TextField
    
    # <$subject>
    
    <$cursor>
    

    The UID and tags 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:

    # {clipboard}
    Tags: #tag1 #tag2
    Ref: [[]]
    
    {cursor}Content
    
    Source:
    

    I'll probably change this as I get used to it, but for now it works just fine.

Sign In or Register to comment.