nb is very good and I've used it extensively for the last 2 years or so. I especially like that you can just throw it a url and it will create a bookmark as well as download a markdown version of the page (using pandoc to convert I think?) This is very useful, especially when links go stale
This looks very well done. In particular the web bookmark database is something I have been thinking about doing myself.
One thing that I would do differently is how titles are handled.
`nb` will store the title in front-matter metadata and set the filename to a slug (spaces to underscore etc.).
For externally added files, both metadata and markdown level 1 headings take precedence over filename. If neither are specified, `nb list` will show both filename (with extension) and first line of content.
I have used markdown-based notes since notational velocity came out 20 years ago. Along the way I have used many different tools, and have come to prefer a filesystem-centric approach where the title is used as filename if at all possible, and the only override is explicit front-matter metadata.
This approach makes it easier to work with the notes as simple files on your phone and in the terminal.
What I'd love is a program that automatically downloads and archives any article-form website on which I spend more than a minute in a browser, and makes everything full-text searchable. Does something like that exist? Perhaps it could be solved with a local proxy and some smart heuristics on request timing in a browser-agnostic way.
The auto-save feature of SingleFile browser extension [1] allows you to do this. You will just need to adjust the settings to change the delay after which the page is automatically saved. SingleFileZ [2] can also do this and produce full-text searchable archives.
Probably a little hacky but using a userscript & an archive tool could work. I have a userscript[1] that I've been using for years to archive some news sites but it just uses the Wayback Machine. It can probably be modified to wait more time and send the request to something like ArchiveBox[2] (or any archive tool that has a web interface). The downside is you'd need to whitelist specific sites (or whitelist everything and have a keybind or some content matching to activate the archive function? idk)
I built https://mitta.us/ to do this, then I added GPT-3 to it for discussions and tagging. There's a bookmarklet and a Chrome extension for this as well. It's not quite released, but I'll let anyone test it if they want!
Question is which search engine can handle this properly though? The first part can probably hacked together with something like DEVONthink and some browser extension but the search features aren’t useful when you have tens of thousands of docs that you just randomly browsed
I totally agree that we need a standard -- but it is already here: markdown files with YAML frontmatter, github-style checkmarks and hash-tags. All synced via your favorite filesystem synchronizer.
This is supported by the tool discussed here (`nb`), and over the last 20 years, I have used it with all these tools:
I'd say [[wiki-style linking]] is the most important feature that you didn't list, probably more important than YAML frontmatter (which I have never used besides aliases). I know obsidian and nb support it.
> Owh.... not another note-taking and bookmarking tool [sigh].
I can understand the concern, but (a) nb is not new, and (b) it does a lot of stuff that other tools don't do, so it would be newsworthy even if it were new.
Haven’t we more or less done that? There will of course always be Markdown projects that don’t use CommonMark and that won’t change. But every note taking app and website I’ve that supports Markdown uses CommonMark.
The only problem is that you can use extension in CommonMark. So although GitHub and my note taking app both use CommonMark, they might not support exactly the same features.
God no. CommonMark is where Markdown goes to die by never changing and promoting the most basic and many times worse implementation. Markdown should evolve to enable new features and improve, not fall victim to people wishing to prevent its advancement.
Nice work! It reminds me of an old static weblog generator that I worked on, called NanoBlogger (nb) which had a similar looking cli and shared the same abbreviation ;)
This is _amazong!_ (so amazing that it's caused me to misspell in excitement)
I've been having to use Notion (for various reasons I won't go into, suffice to say it's been the lesser of 50 evils), and now I don't have to, thank you so much!
I'm currently a big Obsidian user, and I really love the two way linking. (If you link to something, it will show up in the linked document under "backlinks").
Also a big Obsidian user. I guess since they're both markdown it would be very easy to test out nb on my existing notes?
Though for me, the killer feature in Obsidian is the seamless LateX support within a markdown file. I see nb has support for .tex files, but I only want to write LateX when it's absolutely necessary for math notation, not the whole file.
Problem with command line notes is that on MacOS and *nix the notes can’t contain special characters like asterisk or apostrophe. You can surround the note with double quotes but that slows the flow and is not intuitive.
I have a couple of simple shell functions defined for taking notes from the command line, and it all works well except for this annoying requirement that I have to quote the whole line (or backslash escape) if they contain special characters.
Per the license you can incorporate the tool's code in to your work product, too, but only if you release your work product AGPL; your company (probably reasonably) won't let you, and might also (unreasonably) prohibit use.
Also, if you install notational-fzf-vim (https://github.com/Alok/notational-fzf-vim) and point it at the nb folder, searching through notes becomes a breeze. Additionally, you can use vim-markdown-composer (https://github.com/euclio/vim-markdown-composer) as a previewer for markdown in vim.