3 ms·
I wrote a small Go program to manage a Zettelkasten-like set of notes. I use it to keep notes for work and for personal diary-keeping. The goal was to have the
by floren 7y ago
I wrote a small Go program to manage a Zettelkasten-like set of notes. I use it to keep notes for work and for personal diary-keeping.
The goal was to have the least friction possible for taking notes, figuring that's the only way I'd actually do it. I say 'zk t' to print out the tree of all my notes, then 'zk e 23' to edit note #23. I can set my "current" note by running 'zk 5', then when I next run 'zk e' it'll automatically open up note #5. There's a hierarchy, so I can make note #1 titled "work", then create notes under that for different work topics. I can also link and unlink notes from different points in the hierarchy, so the same note can appear in multiple places.
The code is at https://github.com/floren/zk https://github.com/floren/zk if anyone would like to play with it. Caveat: I bashed out just enough to make it useful, then stopped fooling with it and started working. The code has too much manual file-bashing and struct-bashing. I've also been meaning to add the ability to associate files with a given note (so I take notes on a paper and attach the PDF, etc.) for at least two years but haven't done it yet.
- fho 7y agoI kind of got inspired by the original article ... and your post (which was in the top spot when I first looked at the entry). I set out to build my own digital version of the Zettelkasten system. But the more I think about it ... there is not a lot that there is to implement that basic command line tools don't handle. --- Basically every editor (camp vim here) has support for markdown syntax highlighting, giving you a simple way to compose notes. Fulltext search is handled by grep (ripgrep for me), fuzzy file search (fzf) probably comes in handy too. If you need pretty printed notes you can use pandoc to convert multiple zettel files into one document of basically any format. Graphs can be created with graphviz/dot. --- There is little there is to improve on. From my (zettelkasten) notes: * Something that assembles multiple notes into one temporary, editable document. Changes are commited into their respective zettel files once you close the editor. * Some scripts that provide easy to access reports. E.g. based on recent activity, topic or based of a single zettel and it's neighbors. --- All of the above are more or less trivial to implement. So ... any one up to propose something more challenging that is actually useful?