Show HN: CLI plain-text notes & bookmarks with Git, sync, encryption, and more
github.com
github.com
I noticed there's a way to tag bookmarks, is there a similar functionality for tagging notes?
Tagging in `nb` is really simple and is just a matter of putting hashtags in your documents and then searching for those hashtags using `nb search` / `nb q`. `nb <url>` makes tagging a little more convenient when bookmarking by providing a `-t <tag1>,<tag2>...` / `--tags <tag1>,<tag2>...` option and saving them in a dedicated `## Tags` section in `.bookmark.md` documents.
That it's a 11401 line shell script is blowing my mind.
We live in a fruitful age for programming. There are many viable languages. Some have notation that is more difficult, perhaps, but humans are good at notation and there is no such thing as "easy" programming.
That said, any language that offers portability and stability that can be measured in _decades_ has a distinct advantage.
Note that Bash is a weird language that doesn't provide language features found in normal languages, and this targets old Bash which doesn't even have associative arrays, so there are things that might look "wrong", but aren't necessarily in this context. That's a big part of what makes it interesting to code in.
I am not bashing Bash ;) but genuinously interested in the motivations as a programmer. You have stated that the Bash shortcomings are "interesting", so I guess it boils down to some kind of "who cares, let's do it with Bash".
I tried nb yesterday and damn if it had a native capture tool for macOS and iOS this would be the perfect Evernote replacement for me.
It's completely open source and integrates with Git. Please feel free to hop on to GitHub and vote on the existing features.
Note that adding an encrypted file to your agenda, .e.g. `(setq org-agenda-files '("~/org/secret-diary.org.gpg"))` will let Emacs decrypt that file upon calling "org-agenda". Something similar should be possible for search if it doesn't work out of the box
I imagine what is needed is using gpg-agent to handle passwordless decryption of the files at rest.
Well, org-agenda at least seems to support it through Emacs lower-level functions. Search is a bit more complicated, but should be well possible through hooks?
Curious to see what people come here to say does all of this better, because if it exists in a nice package like this, I haven't seen it yet.
alias journal='pass edit journal/$(date +%Y-%m-%d)'
[1]: https://www.passwordstore.org/My only wish would be to be able to import my bookmarks somehow. A few months back wrote my one CLI bookmark manager in Elixir (https://github.com/tefter/cli). It's impressive how much nb achieves yet being written in Bash.
It should be pretty easy to create a bookmark import plugin for `nb`, so that's likely to happen.
I use dstask to manage my todo list which also uses git, it's excellent.
Are you aware of a currated list of git-synched solutions to note taking and todo management? I used to use emacs org which was very good in the beginning yet somehow started to overgrow to the point where I found myself more in organizing than get stuff done.
Congratulations!
[1] https://logseq.com/ [2] https://www.cerveau.app/ [3]https://lobste.rs/s/e5lx5p/what_note_taking_team_wiki_person...
Perhaps there are some interesting stories that the author would like to tell?
I don't know what to say about the number of commits. My working style on this project has involved a lot of smaller commits and little feature iterations, maybe because of the single big script and single big README, or maybe something about the feedback loop of this style of development.
Shameless plug for people who are just interested in the bookmarks part: I've created Static Marks [1], an open-source tool which turns plain-text YAML bookmark collections into a shareable HTML web app.
You'll need a terminal that supports Unicode (but most do nowadays, AFAIK) and a font that can display Unicode characters.
Oh, and make sure you're using a locale that supports UTF-8, of course.
---