nvALT sports features which are not so well-known. You can make it work with an image repository to easily include images in your Zettel notes. I don’t make heavy use of the preview at all, but when I do, it’s mostly because I want to take a look at images. For this purpose, I decided to stick to a simple folder structure and customize the preview template to work with it.
I want to start this series of reviews with a software I’m fairly familiar with. While most things apply to the Notational Velocity base application, I will talk about nvALT exclusively in this review. nvALT is a fork by Brett Terpstra and David Halter of the original Notational Velocity, which was created by Zachary Schneirov, and a few modifications by yours truly. It’s Open Source, free, and very popular.
If you are interested in taking notes fast and reliable but never got around NV’s interface, now it’s the best time to reevaluate the situation. Introducing nvALT, the result of joint efforts of both David Halter and Brett Terpstra who united their two popular NV forks.
Praise
Two weeks ago, I switched from my own NV fork to nvALT. In this newest community-customised fork of Zachary Schneirov’s original Notational Velocity, a few neat design changes have been applied. There is a fullscreen mode, widescreen-layout (<3), word count and a shortcut to open the current file in TextMate—just to name a few of my favorites. Naturally, NV’s original features introduced in January are included as well: for example Tags are stored in OpenMeta format, meaning you can delete the Notes & Settings database file without any loss (except bookmarks), which initially make them useful for me since heavy NV customizations can render this file useless in no time.
Also, the text width is adjustable: when set to 650px with a nice and free Anonymous Pro 14pt font, you can resize the window to your liking but never exceed 78 characters. In this way, I can focus on writing notes in fullscreen mode and still be able to manually break lines at a common width. (Common in respect of ancestral terminal use and derived guidelines for composing plain text files, mails and whatnot.)
Issues
There are a few issues which I’d like to fix as soon as the source code is released.
The Markdown preview window style. It’s default style is just
not-so-stylish at all but shows what can be accomplished when the user
takes some time to modify it. I’d like to tweak the default template a
bit and enhance it attractivity-wise.
MultiMarkdown preview rendering ignores the whole header. Thus,
every note without a header is rendered quite nicely. My fork had issues
with this: every document’s first line or paragraph was assumed to be the
header, hence not rendered at all. Now it’s the opposite. There is an
objectively right way just in the middle: check for existing header
metadata.
Switch MultiMarkdown rendering engine. Fletcher himself released an incredibly fast rendering engine earlier this year, on which I reported. I want that one, cutting edge, blazing fast
(live preview, that is).
Hereby, I stall my fork until nvALT’s source becomes available. Maybe I’m able to plug my desired custiomizations into this new big thing.
Brett Terpstra forked Notational Velocity and applied a few changes that worked for him. Until then, there were not much differences between his fork and mine, according to the screenshots anyway. But look where he has come so far: among the new features is a widescreen layout and – how cool is that? – customizable preview templates!
(Or should it read “Bringing massive text editing to a new level of Notational Velocity”?) When working with different notes in a similar context at the same time in Notational Velocity, I might have a few ideas at the ready to tackle your needs. And, even more importantly, you might have thought about this problem as well and would like to offer suggestions or modifications to my approach so I might implement a new feature set to ease our pain. In any way, this post might be just for you.
I integrated recent changes to Zachary Schneirov’s original NV into my code base. Most issues you were reporting should be solved just by that baby step. The other new and cool stuff is: I’m constantly trying to decouple the code Zachary (“scrod”) wrote. It works fine as-is, but it’s not easy to change and add features while keeping up to date with Zachary’s code. Merging everything every now and then is a little risky. I want my code to be an easy addition, ideally not touching anything from the original. That is just plain impossible, but thinking about it should indeed help me improve my code in many ways. I still can’t grasp how easy it is to do all these small changes. Incredible!
I found out what Steve did to add Markdown preview. There are a few additions to Notational Velocity’s graphical interface components, i.e. the third pane in Steven’s case, the HUD in mine respectively. The other changes are easily reproduced and surprisingly few.
Note that no one’s forking it to remove features. One Thing Well
There’s an implicit argument I disagree with: Since we’re dealing with apps which do One Thing Well here, the quotation may just as well state: “look! how they make the program less focused on a single task but make it more complex instead.”
This, in my mind, basically means either (1) Notational Velocity in its original form was just perfect, hence the impossibility of removing stuff, or (2) Notational Velocity wasn’t perfect but doing one thing well and we developers jumped in and broke the golden rule.
I disagree to that second possible conclusion, partly because I wholeheartedly agree to the first one.
All of us “forkers” try to make something entirely new out of NV. I want to transform it into a text editor for (Multi)Markdown files. Other want a full-screen writing environment. I don’t want to add features to Notational Velocity. I want to change it; and I for my part am pretty certain that it will eventually evolve into something else, a consistent tool for the task of managing notes in my digital archive (Zettelkasten).
I use NV to navigate notes lightning fast, I do not compose them there. I rely on the aid of TextMate’s powerful features there.
My personal aim will be a toolset which combines Notational Velocity browsing with TextMate editing and Markdown-powered preview. I could continue to work with Finder and TextMate alone. Only thing was, it’s a pain in the butt, it was especially painful to search and browse notes. My system evolves around the possibility of changing its parts. Just give us hobby developers time to get our grips onto the code and getting up to speed with our ideas. Some may improve Notational Velocity for one purpose or another, some may break it entirely in the eyes of the userbase. And hopefully, new tools will emerge and prove useful in their own right and their niche.
Notational Velocity forks are popping out everywhere: this one is especially interesting since it adds options to switch to fullscreen editing mode, or quickly hide the notes list to enlarge the text editor. A menu bar icon is included as well, so Notational Velocity can be omnipresent without staying in the Dock, which is quite nice if you rely on invoking “NV” with a keyboard shortcut.
I’d love to merge the new implementation code with my underwhelming preview-enabling version of Notational Velocity, but sadly there’s no code repository set up, yet.
This picture shows my favorite style of previewing notes with MultiMarkdown in Notational Velocity: in a separate tool window which floats on top. I chose this so-called HUD design (“heads-up display”, like a display made of glass in aircrafts) which most of you will already be familiar with by using Apple’s Quick Look.
This is how it looks when I enable my Zettelkasten rendering mode. Bonus: another note featuring my current naming conventions is visible at the top of the list. A “Zettelkasten” is an German term describing an archive which mainly consists of annotations on literature, quotes and excerpts. Also, notes with synthesized information are allowed.
Theres a new Notational Velocity fork available on the interwebs. What makes it unique? So far, it’s the MultiMarkdown support–and you can choose if you want MultiMarkdown included in a bundle with Notational Velocity or rather a Notational Velocity binary which supports your local setup, assumed to reside at ~/Library/Application Support/MultiMarkdown/.