Zettelkasten Forum

How to create unique citekeys

One of the things I struggled with during my first try with Zettelkasten was how to create a link between my notes and the source that sparked the ideas I write on them. Now, when reading on the forums, I realize that I didn't get the difference between the Zettelkasten and the RMS: That I can (should?) store the source somewhere and then have a reference to it in my notes, the citekey.

As I write in my introduction, I've been using Devonthink for the last couple of years as a storage for adademic papers, web archives and random notes. My intention (at the moment at least) is to keep using Devonthink for the original sources and use The Archive for my Zettelkasten. What I haven't figured out yet is how to create unique citekeys for the stuff I store in Devonthink. Does DT has this functionality, or do I just have to come up with something myself, along the lines of [lastname-year]?


  • I use BibTex for that. The software is Bibdesk. Give it a try.

  • For what it's worth, I use Zotero with the Better BibTeX extension for this purpose. Zotero is free, open source, and has a robust developer community contributing extensions and other add-ons. I try to write in plaintext with markdown and use the BibTex standard to prevent my reference notes from getting locked into some proprietary software format (like Endnote).

    Just to illustrate, today I'm working on a literature review for a paper on stability of Amish communities in the United States. I found an older paper (1981) by Marc Olshan titled "Modernity, the folk society, and the Old Order Amish: An alternative interpretation". Zotero scraped all the necessary bibliographic data from the database where I found this article so I didn't have to key in anything.

    Better BibTex lets you create a citekey recipe. I use [auth:lower][year]. (Others use longer citekeys with different components, I think there's a thread on this forum discussing that. Me, I'm lazy and accustomed to seeing @lastname2018 as reference markers, so I use what I know). So when I created this entry for Olshan's paper (by clicking the nifty Zotero button in my browser, I might add) the extension automatically created a cite key olshan1981.

    Now in any of my notes... (slowly being consolidated in a Zettlekasten, but currently spread throughout a bunch of devonthink databases, text files, and even (shudder) Microsoft's Onenote) anytime I see @olshan1981, I know that I can get the full bibliographic entry in Zotero. (Or from a BibTex file that I automatically export out of Zotero everytime I make a change).

    This doesn't address your question about linking back to Devonthink. If it were me, I'd tag the item in Devonthink with the unique citekey generated by Zotero. You could also create a url to the devonthink item and paste that link into the Zotero entry, but that seems like a lot of work. But perhaps I misunderstand what you're trying to do.

  • For citekeys, the most common is to use something bibtex-based (for example Zotero) and then reference that in your markdown-oriented Zettelkasten. Pandoc syntax is common such as "[@authorYEAR]". Then Pandoc can recognize this, link the citekey to your database and generate reference lists and bibliographies. But this is if you need to have references in the final output.

    Another option is to just give anything you need to reference an unique ID the same way as you do in your Zettelkasten, such as 201807091218. I link like this to images and other things outside of my Zettelkasten (even physical index cards!). The great thing about a YYYYMMDDHHMM timestamp is that you always, no matter where you are, can get a unique timestamp just by knowing the current time (I guess it could be problematic if you travel backwards across timestamps though :) ).

  • @thoresson said:
    What I haven't figured out yet is how to create unique citekeys for the stuff I store in Devonthink. Does DT has this functionality, or do I just have to come up with something myself, along the lines of [lastname-year]?

    DevonThink provides unique keys to every entry. You go to the entry you'd link to link, select the command Edit -> Copy Item Link, and after that you can insert that URL (uniformresource locator) via Paste into every app that supports URLs: It works in TextEdit as well as in Mail oder in Reminders. DEVONthink Pro's URLs take the form of "x-devonthink-item://" followed by a long alphanumeric ID, but the displayed text is usually the entry title.

  • edited July 14

    Keep in mind that DEVONthink's unique IDs are unique per database only, and automatically generated. (Like when you type uuidgen in the terminal and get 4A91ED15-3AD5-4A5F-9E5C-CE57E8D5E2C8, for example.) So these are only semi-stable link targets. Don't bet your career on them staying constant :)

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

  • edited July 14

    The IDs are automatically generated, sure, but they stay the same when transferring an item from one database to another (something I do very often), and they survived a transfer of the databases from an old computer to a new one: Stable enough for most purposes. And the probability of false links is negligible; the worst case would be that a link is not found (which hasn't happened to me until now), in which case the search function of DevonThink will most probably help out.

Sign In or Register to comment.