Hacker News new | ask | show | jobs
What's your thought on my note-taking system?
4 points by borgwang 1380 days ago
Over dacades I try a lot of note-taking apps and none of them suits me well. So I end up building my own note-taking system. It's a simple terminal-based client with a set of commands to create/search/manipulate markdown files. I use Vim for editing. And there is a command to sync the whole note folder to my github private repo.

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!

3 comments

This sounds like a rudimentary implementation of a Zettelkasten system. Basically it's a philosophy of taking atomic notes, with no predefined hierarchy/structure where notes reference each other through their unique IDs. Notes are atomic, often using tagging for search & visualization. Over time the atomic, linked notes can generate interesting insights not immediately apparent by the content of the notes themselves; their links can show relationships hidden in the connections, etc. There's much more to it than that, but the core ideas sound similar.

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.

Sounds like a cool system, would love to break it! :-D

Actually, 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.

Thanks for replying. Yes, I think "tags" is better than tree-structured directory. One file can have multiple tags. And actually the TODO I mentioned above is a specialized tag.
Looks ,neat i also started with a simple setup ,now it's evolving into a web app ,and markdown as files .