Markdown streamlines my writing. And Markdown apps like Marked 2 and nvALT, both by Brett Terpstra, supercharge my Markdown workflows. I use Marked 2 to preview every significant document I write in Markdown — including my blog posts. I use nvALT on a daily basis to write notes on my Mac that sync on iOS. (I described the latter in both my Cognitive Productivity books).
So, of course, Marked 2 and nvALT were two of the first apps with which I tested Hook. They are both particularly interesting to write about in relation to Hook because they are both quite innovative apps. It was gratifying to find that Hook works very well with such apps. Here’s why.
Marked 2 is a Markdown previewer, not a composer. As such, one does not write in that app. Therefore, in the “Link to New” menu of Hook you will not find an entry for Marked 2. However, when a document is loaded in Marked 2, you can use Hook’s “Link to New” command to link the current Markdown file (say foo.txt) to something else (e.g., bar.txt). Thereafter, when you invoke Hook on either file, whether it is in Marked 2, the Finder, or some other adequately scriptable app, like Sublime Text or BBEdit, you will see its associate. In other words, in the context of
- foo.txt you will see bar.txt, and
- bar.txt you will see foo.txt.
“in the context of” means: when the file is open in an app, or selected in a “container” app like Finder, DEVONthink , Evernote, or EagleFiler.
Whether you open a Markdown file in Marked 2 or your Markdown editor (e.g., BBEdit or Sublime Text), you will see the same links. This is rather “meta”, and thus illustrative of Hook’s pre-launch code name, “myMeta” (the my* being analogous to our other app mySleepButton) :).
Of course, with Hook you can link Markdown files to just about anything (files, emails, web pages, Agenda Notes, OmniFocus or Things tasks, etc.). That means with Hook you can navigate between a file opened in Marked 2 and all kinds of other apps.
Aside. Because Hook links are stored in Hook's databases, you don't need to worry about your linked files being modified by Hook. To put it differently: all Hook meta data is stored in Hook's ~/Library folder. Thus, unlike OpenMeta, Hook does not write to a file's xattributes. That's important for syncing with iCloud and Dropbox, because those services don't play nice with xattributes. An exception is that you can optionally, for your convenience, enable Finder tagging of linked files.
Of course, you open a Markdown file (whether it be via Hook or Finder), the file will open with the default app associated with its file extension (the setting you see when you select the file in Finder and choose the “Open with” Finder command). The default “open with…” app may or may not be Marked 2. In fact, typically Marked 2 is not the default app for opening markdown files–because you usually want to open your Markdown files with a text editor. If you’ve gotten the hang of Marked 2, that will not be news to you. That’s just the way macOS works, and it makes sense. (This actually reflects an essential cool fact about markdown: markdown files are plain text and they can easily be opened and used by any app, unlike MS Word.)
Hook does not override the “Open with…” settings of Finder. But Hook does give you control over which email editor opens linked emails. Check out the Favorite Apps section of the Preferences.
nvALT is a notational velocity text editor. It aims to meet one of the same requirements as Hook, actually, which is to allow you to rapidly access any file. There’s a handy filtered search tool at the top of the window. It filters the list of files not only by filename but by content. In a nutshell the tool is very handy. And you can write in Markdown in this tool.
Hook works well in the context of nvALT too. You can invoke the Hook productivity window on any document. From there you can do the usual:
- “Copy as Link”
- “Copy as Markdown Link”
- “Link to Copied Address”
The “Reveal File in Finder” command works if you store nvALT files as files. But if you store it as a single database, then the concept of revealing the file in the Finder doesn’t apply.
There are a couple of idiosyncrasies to keep in mind. If you paste a link obtained from the Hook window (whatever the protocol, e.g., http://, OmniFocus://, hook://) nvALT will actually transcribe the name of the link, not its address. That’s because not all apps handle the copy buffer the same way. (E.g., Apple’s own apps are inconsistent on this front.) One way around this is to use Hook’s “Copy as Markdown Link” command, which is normally what you should do if you’re pasting in a Markdown tool. Another way around the issue is to use the “Copy as Link” command. Then Hook only populates the address of the file, and that is what nvALT will paste.
Also, nvALT does not support drag and drop of search results, so you can link with Hook’s menu bar icon.
In my setup, which is quite common, nvALT on macOS and 1Writer on iOS both sync to the same Dropbox folder. I will often quickly jot down notes on iOS that I will later use on macOS. (macOS is still far more conducive to cognitive productivity than iOS — cf. the 2-second rule I describe in both my Cognitive Productivity books). I have one file in the nvALT/1Writer Dropbox folder for each of my major projects.
So, many people, myself include, copy content from nvALT to other files on their Mac (e.g., into emails, OmniFocus tasks, outlines, you name it…). I often link “nvALT” files to other project files. For example, I have a Hook marketing file in nvALT, and several in OmniOutliner. I’ve linked the nvALT file to the marketing folder, and to my main OmniOutliner marketing file. I can use Hook to rapidly access one file from the other.
In sum, nvALT and Marked 2 are two very helpful and innovative apps that work well by themselves, together, and with Hook.
2 thoughts on “Hook Productivity with nvALT and Marked 2 apps by Brett Terpstra”
I’m wondering why I cannot setup Hook to “Hook to New” nvAlt? Is there a way to setup an existing note as a template and use that as “New”?
nvAlt does not appear as one of the options in Hook Preferences Default templates
Thanks for asking, Said. Hook has extensible scripts for this : https://hookproductivity.com/help/integration/creating-integration-scripts/ . However it requires that the app has an API for it. I don’t think nvALT does. But nvUltra does, and it works.
You can ask more on the forum https://discourse.hookproductivity.com