Tasks + Journal in TextMate

A couple of years ago (whoa now, three and a half years ago?!) I commented on using the TextMate Journal Bundle to keep a snippets log. I still use that same snippets file for some references and a handful of things that don’t quite fit in 1password.

When 2010 rolled around, I started up a new journal file to use for a little bit more writing, and quickly found that I wanted to mix content within that file — specifically, I wanted to add tasks and treat them more functionally than straight markdown list items. Henrik Nyh’s TextMate Tasks bundle handles to-do lists quite well, so I cobbled together a combination of the two bundles. A screenshot of some of these integrated journal+tasks lists is below:

JournalTasks bundle screenshot

Combined, I get the nice markdown-compatible writing of the journal bundle, plus its keywords, search, and folding capability, along with the nested list feature of Tasks.

Use the journal bundle’s dts and dtsp tab triggers to start new entries complete with date stamps (and clipboard contents in the case of dtsp). You can write text into any entry, and intersperse lists at any point by starting a line with - (indent with one or more spaces to create sub-lists; Tasks will love it). Toggle list items to complete with cmd-D, and cmd-E will remove expired items.

I like just being able to put lists into markdown-enabled writing, but there’s a nice Getting Things Done application here, as well: Since the folding in the journal bundle is so easy, you can make @context entries, fill them with actions, and fold them to get out-of-scope contexts out of the way. Drop the name of the scope into a keyword, and the Find in Bundle command will produce a nice list of the first entry in a given context that matches a search. It’s simple but workable for GTD, if you’re into that sort of thing.

A variation that’s even more direct GTD-style tasking is to use @context tags anywhere in your entries and then employing the “find tasks” command to display only the desired matches. Use either or both find commands to fit your style and workflow!

Note that the Tasks bundle is inspired by the very good TaskPaper app. If you’re interesting in something a bit more full-on for lists (and GTD) that also has a bunch of extensions and related projects, do check it out. (Since TaskPaper works with text, you can even load files from Tasks+Journal or Tasks right into it and maintain some (but not all) functionality. I’ve done a little bit of further tweaking to maintain that compatibility in my bundle, like change Henrik’s check-mark back to the “@done” syntax that TaskPaper users (and update the bundle’s commands accordingly), which lets me switch back and forth pretty smoothly.

The JournalTasks bundle is available at github.