
[Photo by Monster via Flicker]
My intention with this blog is providing clear, not-so-geeky explanations and ideas on using technology to improve your life. However, I’m going to momentarily shift toward the geeky end of the spectrum in this post and talk about my writing workflow with MultiMarkdown. I’ve noticed that a significant portion of the traffic I get from search engines are people looking for information on MultiMarkdown, which I wrote about in an earlier post.
I owe much of my awareness of the programs I use in this workflow to the Mac Power Users (MPU) podcast, an excellent resource on a variety of things Macintosh. If you are a Mac user of any experience level, I guarantee that you will learn a lot by listening to MPU.
My writing workflow utilizes several tools that I discovered through MPU. However, I feel that I’ve created my own unique combination of these tools in a way that suits me. Maybe it can help you too.
Most of my workflow is centered around MultiMarkdown, but it becomes even more useful with the following additional ingredients…
This post is essentially a recap of my journey with MultiMarkdown (so far) and how I’ve implemented the tools above.
Why MultiMarkdown
Obviously, people wrote long before computers. And in some ways, the pre-computer world was a better one for writers. There were fewer distractions, fewer traps between thoughts and text. The writer was not encumbered by decisions as to font choice and line spacing. Those decisions came later, and they were the domain of the publisher. The writer’s job was simply to move a pen across a page.
Now, I don’t use pen and paper, at least not very often. But I do use the closest computer substitute there is: the text editor. My choice is simply TextEdit, the basic text editor that comes with Mac OS X. I know that many Mac gurus prefer more feature-rich editors like TextMate, and with the MultiMarkdown bundle, I’m sure that it’s a powerful tool. I may test drive that setup at some point, but right now I’m trying to keep things simple: black words on a white background; nothing more.
Writing MultiMarkdown in TextEdit makes me feel closer to a purer state of content creation and the art of writing. It liberates my brain from making visual decisions as I write.
In the summary I wrote of MultiMarkdown earlier, I discussed the basic syntax, which is mostly derived from Markdown, created by John Gruber.
I think writing in Markdown or MultiMarkdown is fairly straightforward. Where some people may be intimidated is the process of converting MultiMarkdown to HTML (or whatever publishing format you desire). The most basic way of doing this conversion is using a Terminal command like:
mmd2XHTML.pl file.txt
Terminal commands often intimidate people for various reasons. So if this step makes you fearful, it’s likely you won’t try MultiMarkdown. I mean, what’s the point of using a tool that you perceive to be difficult? That’s logical enough, and I won’t attempt to assuage your fears of Terminal.
Fortunately, Fletcher Penney, creator of MultiMarkdown, provided a nice to solution that curbs the geekiness of this step a bit. Using his drag and drop apps, you can simply plop your MultiMarkdown text file onto the appropriate app. A little progress window will appear, and magically your file will be converted to HTML, PDF, RTF, etc. The new file will be sitting right next to your text file in Finder.
Drag and drop is nice, and maybe it’s suitable for most people. But I wanted something even more seamless.
LaunchBar + MultiMarkdown: a pretty darn efficient workflow
LaunchBar seems to find its way into just about all of my Mac workflows. It’s an indispensable layer on top of the core OS that I use so much now that I take it for granted–until I’m on a computer without it. Like its aging predecessor, Quicksilver, LaunchBar ensures that launching an app, opening a file, performing a quick calculation, and myriad other actions are only a few keystrokes away.
Initially, I was using LaunchBar to process MultiMarkdown for HTML conversion:
- CMD+SPACE to invoke LaunchBar
- Locate my MultiMarkdown text file
- TAB
- Type “multi” (or less) to find MultiMarkdown2XHTML.app
- RETURN

This sequence tells LaunchBar to open the text file with MultiMarkdown2XHTML.app. It works really well, and once I got this down, I thought I had found the ultimate solution for quickly processing MultiMarkdown files.
Then, I discovered a new tool.
Hazel: not just a maid but a writing helper?
For me, Hazel was one of those Mac apps that I heard mentioned every so often but just never got around to investigating, at least not until recently. Brief descriptions of Hazel usually don’t win it any glamor points. It’s beauty is not beheld until seen in action. And like so many great apps, it adds value by staying out the way and doing its thing.
At first blush, Hazel appears to simply be a way to keep your Mac tidy by emptying the trash, cleaning up your downloads folder, and doing other automated file/folder actions. It’s worth buying just for these benefits alone.
However, Hazel is capable of much more. Its framework allows for so many different automations that it truly begins to mold itself to person using it. Hazel’s forum is filled with interesting uses. MPU also did a really good episode on Hazel not long ago.
After playing with Hazel a bit and thinking about things you do on a regular basis, it’s likely that ideas will start popping in your head.
With my LaunchBar approach, I would typically write a decent first draft in TextEdit first. Then, I would preview what I had written by invoking LaunchBar to generate an HTML file. In this editing phase, I found that I was invoking LaunchBar a lot. I often find many typos and decide to do heavy tweaking while editing. This means frequently going back and forth between the MultiMarkdown text file and the web browser (invoking LaunchBar in between).
Repetition often indicates opportunity for automation.
Hazel is good at keeping up with all kinds of file attributes, some of which aren’t even monitored by OS X. When I noticed the “Date Last Matched” variable, a light bulb came on. I created the following Hazel rule for each folder where I compose blog drafts:

By saying “Date Last Modified is after Date Last Matched,” it tells Hazel to act on the file any time it changes. Within a second or two of saving each draft, Hazel runs the text file through MultiMarkdown2XHTML.app, and out pops an HTML version of the document.
So when I’m ready the view the draft in a web browser, all I have to do is find the HTML file, double click it, and view. As I make changes and save them in the text file, all I have to do is refresh the browser page (F5 in Firefox).
This really streamlined my writing workflow. By letting Hazel worry about making HTML, it freed up even more time and energy to focus where the writing happens: TextEdit.
When I’m finally done, I simply open the HTML file in TextEdit and copy the code into WordPress, or other blogging platform.
Bonus: I also created another Hazel rule to delete the XHTML version of the file that MultiMarkdown2XHTML.app creates since I don’t need it.
Conclusion
I don’t claim to write well. Writing, like most things in life, is something you can improve on but never perfect. My general goal with writing is to do it better than the last time.
Taking steps to ensure that I focus my energy as efficiently as possible while writing helps make my writing better, I think.
For me, MultiMarkdown + Hazel is a pretty powerful marriage. In this case, power means simplicity. It provides an extremely efficient, simple interface that lets me focus on writing in plain text. It also forces me to put off formatting. (And sometimes I don’t have to do any formatting at all when I’m done.) I also don’t have to trip over HTML mark-up as I write, and I don’t have to spend any time converting MultiMarkdown to HTML.
If you like to write on a regular basis, you may want to give MultiMarkdown a try. By liberating yourself from ADD-inducing word processors and clumsy web-based blog editors, you may find that you produce higher quality content (text).
Please share your writing workflow tricks in the comments.
{ 11 comments }
Glad that someone else has tripped over two or three of my favourites, I’m a confirmed Launchbar, Markdown and Hazel addict too, but I deviate on the editing.
For full blown capability I’d use Textmate, but I’d like to propose a few little additions/changes to your workflow … try them you might like them.
Notational Velocity is a wonderful utility, which takes the form of a “simple” text note taking tool, with search/create being its main focus. Its text handling is simple (good!) and general day-to-day workflow is sublime. Amongst other things you can have it store each note as an independent text file and its this mode that is so interesting.
Recent versions of NV are also capable of sync’ing their text notes to the free SimpleNote online service, which makes each of your notes/texts available online and any computer, phone, web browser that you like (the iPhone SimpleNote app is great!). If nothing else it makes backup/sync transparent, but editing smoothly from multiple locations is fantastic for keeping notes and jotting ideas down when the mood or inspiration strikes.
So, try swapping NV for TextEdit, set it to archive each note individually as text and sync it to SimpleNote. Keep the LaunchBar convert to X functionality for output, BTW, Safari is clever enough to pickup on the previewed file source changing, so it will refresh the HTML view automatically on change.
As far as simplifying the markdown … thats where a small modified version of NV comes in, NV is open-source and hence another committed markdown fan, StevenF, recently posted a fork of the NV codebase, which integrates a markdown preview window of the text note being edited. Its a live view, so you get some good feedback on your edits in situ, without round-tripping to HTML until its really necessary. You can find his modified version of NV at http://github.com/panicsteve/nv/downloads.
Hope some of that makes sense …
BTW, I assume you’ve been thru the distraction free editors, like StoryMill, WriteRoom, et al … personally they’re overkill for me, but if writing is your thing.
Craig
Could you talk a little about your MacTex and PDFTex installs? I have the Basic MacTex 2009 package and the PDFTex package installed, but still seeing errors when running the MMD perl scripts.
! LaTeX Error: File `layouts.sty’ not found.
! LaTeX Error: File `tabulary.sty’ not found.
Then I get a .tex file a .pdf and the pdf file has a title page, table of contents, and all my ## headers are changed to “Chapter 1, Chapter 2,” and so on.
Oh, and the MMD drag and drop Multimarkdown2pdf creates a .tex file. When I invoke pdftex filename.tex it just tells me it can’t write on file ‘filename.log’
So, if you have any experience with any of this – would love to hear how you got all this worked out to get to where you are today with MMD. Thanks.
@CraigM:
Thanks so much for your suggestion. You know, I’ve been meaning to try out NV because I’ve only heard great things about it. I didn’t know that the text files could be archived individually. That’s really appealing. I think I’m going to give that a shot and blog about my results later on. Thanks again!
@Jeremy:
I’m not using LaTeX at all right now, though I’ve been meaning to look into it because I actually do some work where it would be handy to write out math equations. I wish I could help you out, but I just don’t have any experience using MacTex. I’d love to hear about how you’re using it if you find that it’s useful in your workflow(s). Thanks.
@Eddie:
Thanks for the reply. Yes, I’ll let you know about the workflow when I get the bugs worked out. Unfortunately I don’t have any experience with MacTex or LaTeX either – I am just trying to take my MMD text files and create PDF files out of them. I can work with the raw text files on my system, but to share material with others I want to have those files as PDF. If I could get this to work then I could dump Word completely.
Great post. Thanks for sharing your workflow.
I set it up with SimpleNote/Notational Velocity. Hazel automatically runs MMD on any note that I start with MMD, and then dumps it in an HTML draft folder in Dropbox.
Thanks, John. It’s funny you mention using name changes in Notational Velocity notes to trigger Hazel. I’ve been experimenting with precisely that and just finished a write-up of it. I’m going to post it soon, but it sounds like you’re already doing exactly what I stumbled across!
There are so many different ways you can pull these tools together. It’s cool hearing about all the creative uses. Thanks for sharing!
This is such a neat idea! Especially the Hazel part.
I’m doing a screencast series for Scrivener on our site. Do you mind if I take your idea (maybe) into one of the next Scrivener tutorials? You can write me an email if you want.
Thanks, Zettt. Feel free to use this idea in your tutorial. Let me know if you decide to so I can check it out. I use Scrivener too, so I would love to see it. Thanks.
Hi Eddie
Have you played much with calling Multimarkdown from Hazel via a shell script?
I’ve been using your method for a while and I didn’t like the little MMD app window popping open all the time, so I thought I would call “multimarkdown -b $1″ from Hazel and let it work behind the scenes.
I’ve run into an error from Hazel that it can’t find the command “multimarkdown”. I tried setting up a shell script to call Multimarkdown (just to see if I was passing things right) and it worked just fine. I went back to hazel and tried calling *my* script that calls multimarkdown and I get the same “Can’t find multimarkdown” error. Have you run into anything like this? Is there something that I’m missing along the way?
I tinkered around tonight and found the solution.
/usr/local/bin/multimarkdown -b “$1″ in the Hazel script editor does the trick. (assuming you’ve installed multimarkdown to the standard location). Now, to make Hazel see meta comments….
Yeah, Terminal commands can be tricky. I’ve spent more hours there than I care to admit. Glad you got it figured out.
Comments on this entry are closed.
{ 6 trackbacks }