Tags in nvALT used to be a string you typed into a text field. They are tokens now, and the search field knows what a tag is.
Tokens instead of a tag string
Click the tags on a note (or hit ⇧+⌘+T) and you get a token field. Each tag is its own token. Type a new one, hit the separator (space, comma), and it becomes a token too. The same field is what you get when you tag a single note from the list.
nvALT already had tag autocompletion from your existing tags, so that comes forward with these other improvements.
Tagging more than one note
Select multiple notes and open the tag panel (again ⇧+⌘+T). You see every tag those notes carry, not just the ones they all share.
Tags that are on every selected note stay highlighted. Tags that only some of the notes have show up dimmed, so you can tell a shared tag from a stray one. Apply a dimmed tag by clicking it and it gets added to the notes that were missing it. Take a highlighted tag away and it comes off the whole selection. It’s very close to how Finder tagging works.
No More OpenMeta
This was actually a change in an earlier release, but it bears repeating. nvALT saves tags on notes to tags on the file itself, if you have plain text storage enabled. Previously this used OpenMeta tags, which were awesome in their day (over a decade ago), but not so much today, now that Apple has sherlocked them and Finder offers its own tags. nvALT now uses Finder tags, so you can search by tag from Spotlight1.
#tag in the search field
The search field now treats a word that starts with # as a tag. #unix lists notes whose tags start with unix. Case does not matter, and #uni is enough to catch unix and unix-admin while you are still typing.
It mixes with a normal search. Every piece has to match.
#unix shell
#unix #mac
#unix shell means a tag starting with unix, and the note also matches shell. #unix #mac means both tags. The hash has to sit against the word, so # unix is just a hash character plus a search for unix.
I might evenutally add functionality that will search your notes for #tags in the content and apply them as tags to the note, but not yet.
Web clipping
I personally think saving the text of a web page you searched for and which answered a question in a searchable database of your own is just prudent record keeping. Its why I build so many “markdownifier” options (Marky, Marked’s URL import, gather, etc.). I built it into nvALT years ago, but it had since stopped working for most people. So I rebuilt it.
Dragging a URL onto the notes list still works. Most browsers do not give you a proxy icon you can drag anymore, so Note → Import URL… opens a field for the address. If the clipboard is a single web address, that address is already filled in. A host with no scheme is fine. nvALT adds https://.
Turn on Convert imported URLs to Markdown and the page comes in as Markdown. Process with Readability extracts the article first. Hold Option when you choose Import URL, or Option-drag a URL onto the list, and Readability runs for that import even if the preference is off.
The new note is selected as soon as it arrives. The search field is set to the note’s title, so a leftover search does not hide it.
nvalt://markdownify and nv://markdownify do the same conversion for a script or a browser extension. Pass the page as url, or the HTML itself as html (then url is only the source link). title and readability (1 or 0) are optional. This scheme always writes Markdown, even when Convert imported URLs to Markdown is off.
The converter is built into the app now with my own Swift libraries. It uses the same HTML2Text and Readability setup as Marked, instead of bundled Python scripts.
Browser Extensions
Long ago, nvALT had a browser extension for at least Chrome, and maybe Firefox. They weren’t maintained anymore, so I’ve built new ones. They use the same framework as the Marked extensions, allowing you to markdownify a whole URL (with or without Readability to remove distractions), a current selection on the page, or select one or more blocks using a hover highlight and click (⌘ or ⇧+ for multiple blocks).
The Safari extension ships inside the latest version of nvALT. The Chrome/Brave and Firefox/Zen extensions will require approval from the respective stores, and that can take a while. But if you’re curious, I’m putting the code up on GitHub.
Download
This is all in the latest release. Check for Updates, or download below:
Unfortunately I’ve found tagging and Spotlight more and more incompatible with each OS release. But with tools like HoudahSpot, it still very useful, and nvALT makes it automatic, even if you don’t use it for search outside of the app. ↩