What's your thought on my note-taking system?
Some features of the system:
- single folder All file are stored in one single folder without subfolders. No need to categorize every single note. Several years ago I did have some sub-directories base on subjects. I found it time-consuming to maintain as my notes grow, and it didn't really benefit a lot.
- search The `search` command is the most frequently used command. I implement a relative simple ranking function to rank candidate searching results, taking account of factors like last access/modify time, number of matches, how many times file was opened, etc. And It works super well for me. Most of the time the one I want is in the top three.
- todo I write TODOs in different note files, which give me more context about each TODO item. A TODO item looks like `[TODO|20221201|something to do]`. And the `todo` command will just grep all the TODOs from all of my notes using regex matching.
- cards Every time I open the client, it will show me a random segment from a random note. If I have new thoughts on it I can go and check it out. Maybe I will try implementing something like FlashCard in the future.
Recently I talk with a friend of mine. He liked the idea and said I should probably make it available to others. Let me know what you guys think about it. Which feature you like? Which feature you wish to have? What does your ideal note-taking system look like?
Thanks!
4 comments
[ 3.0 ms ] story [ 21.2 ms ] threadActually, you talked about that every note doesn't need to be categorized – I think differently, however I think that it should work on a "tags" basis. If I grep a tag, i.e. #school over all the notes, I should find only those that are related to schoolwork.
If you're interested, check out Org-roam for its implementation of this stuff. It's emacs-based, but uses the same style of markdown notes connected by tagging & linking, while providing search & visualization features which take minimal effort to configure. I've modified my own fork of it to include some staleness tracking on files, identifying the last time a node was accessed, updated, or linked-to.