How to set up a foolproof note-taking system for writers and other nerds (Part 2) | Cult of Mac

How to set up a foolproof note-taking system for writers and other nerds (Part 2)


Welcome to Part 2 of our series on note-taking for writers (or anyone who takes lots of notes). In three posts we’re looking at ways to take notes on paper, on your iPhone or Mac, and collected from the web, and combine them all (optionally) into Evernote for easy browsing and retrieval. In theory you can do all of this just by launching Evernote, but that app is pretty terrible at capturing notes.

Part 1 dealt with paper notes. This part is all about grabbing quick text notes on your iPhone and Mac, and then using Hazel to send them to Evernote. Have fun!

Capture with Drafts

This part can be as complicated or as simple as you like. I’m using Drafts on the iPhone and iPad to take my notes and save them as individual text files in Dropbox.

Drafts is an app that launches to a text-input view and then lets you send the resulting words to any app or service you like. It’s flat-out amazing.

I then view these files in nvALT on the Mac, a notes app that synchronizes with any folder full of text files, or in any Dropbox-aware text editor on iOS.

Here I use a tagging scheme that corresponds to the one I use in my paper notes. Here it is:


It’s almost the same as the paper version. I have a field for title ideas, and I differentiate regular ideas and ideas for whole new stories. I also skip the X fix up tag in favor of a @todo tag combined with a specific tag for each story I’m working on. That makes it easier to filter the results in nvALT.

Speaking of which, the reason I tag my notes inline is that nvALT searches instantly in all your files, so just by typing “@dialog” it will show me a list of all my dialog snippets, or whichever tag I choose:

Next, we’ll import these files into Evernote. To do this we’ll use the excellent Hazel automation app, which watches folders on your Mac and then does things to the files inside, based on your chosen criteria. In this case, the criteria will be whether or not the text note has a tag in it somewhere, and the action will be to add that note to your StoryBook notebook in Evernote.

In previous incarnations, I had a separate rule for each tag – @idea, @character, etc. These rules would then add an identically named Evernote tag to the note on its way in. This was OK, but only matched the first tag, which I found limiting. So in this version I don’t bother with the Evernote tags at all – instead I rely on searching the @tags within the files.

First, grab Hazel. Then, tell it to run its rules on your nvALT folder, or wherever you keep your notes (it’s a good idea to create a different folder for testing before you point it at your precious live notes folder).

Then we create our rule:

Name your rule and then in the top section choose Contents in the drop down, and then contain match in the new drop-down that appears next to it. This will make a table pop up with a bunch of tokens. Drag the Custom token up to the text field at the top and then click it to edit.

Give it a name (I used “tag”), then type an @ symbol, then drag the abc token up next to it. This rule will now match strings of letters with an @ symbol in front of them. That is, it will match files that contain tags. Why? So that if you keep other non-tagged notes in your nvALT, then they should be ignored by Hazel, and not imported into Evernote, which is the next stage.

To import matched files into Evernote, we’ll use an Applescript. Copy this code:

tell application id "com.evernote.Evernote"
 create note from file theFile notebook {"Notebook"} tags {"tag 1", "tag 2", "tag 3"}
end tell 

Make sure that the third line about tags is all on one line. Then, in Hazel, choose the Run Applescript action, pick the embedded script option and then click Edit script. Paste the code in there, changing “Notebook” to name of the Evernote notebook you want to use, plus any tags you want the resulting note to have.

In the example, I added the tags “Storybook” and “NV” to help keep track of files imported using this method. If you don’t want any tags, delete that section of the script. You’ll also see I added a bonus action to set the Mavericks tag to the same value as the tag matched in the top section. That is, if Hazel matches “@idea” in the first section, then it will now add “@idea” as a Mavericks Finder tag. That may or may not be useful to you.

Test this rule by setting it to run on an empty folder and then copying (⌥-drag) one of you note files in there. If it works, attach it to your live notes folder with one important change. So Hazel doesn’t run on the same files over and over, you want to tell it to only match files it hasn’t matched before. The standard way to do this is here, in the picture of my final rule:

Now Hazel will only match files added after it last matched one.

Syncing updates

What? That’s not enough for you? You want be able to edit your text notes and have the changes reflected in Evernote? Sure! What you need is this script from Gabe Anzelini, which watches your nvALT folder for any changes and syncs them to the appropriate notes in your Evernote. You need to open it in your Mac’s Applescript Editor app, then change the line at the top of the script to tell it the location of your nvALT folder, and change “name” to your short username:

# customization variables

    set _nvalt_path to "/Users/name/Dropbox/Notational Data"
    set _last_run_files to "/Users/name/Dropbox/.nvalt_to_evernote_last_run_at"

    # don't edit anything below here

Then you should find a way to run that script periodically. You could make Hazel run it every time the folder is updated, or you could use an app like CronniX to run it, say, once an hour. Mine looks like this:

That’s it. I’m no script or coding expert, so I can’t offer much help if things don’t work out for you, but these hacks have been working fine for me so far. Good luck!

You might also like Part 1 of this series, on tagging and ingesting paper notes into Evernote, and Part 3, which will show how to quickly suck your web research into Evernote using IFTTT and Pinboard (coming soon).