Writing with Markdown
Not that it shows in the posts in this space, but I write for a living. The software that I use varies based on the type of writing that I’m doing. Much of my work in done using a word processor, a text editor, or with an online tool like Google Docs or Writeboard. Over the last few weeks, though, I’ve started using Markdown again to write and format documents, and this time around I’m actually liking it.
A little background
Markdown is a Perl script written by John Gruber which converts a plain text file (that is formatted with a very simple syntax) to HTML. The syntax is very similar to that used when adding content to a wiki. For example, a single # marks a level 1 heading, an * is a bulleted list item, and surrounding text with _ will change it to italics.
I first tried Markdown a year or two ago. And to be honest, I wasn’t overly impressed with it. At the time, I couldn’t see the point to it. But after trying it again, Markdown has grown on me. For me, it’s a great addition to my writer’s toolkit on Linux. And it fits in with my philosophy about the utilities that I run on Linux: they should be small, flexible, and useful
Throughout the rest of this post, I’ll be using the word Markdown to refer to both the syntax and the script.
How I’ve been using Markdown
I’ve been using Markdown to write articles and blog posts. With an article, I’ll write the first couple of drafts in a text editor, then convert the article to a word processor document (more about this later). Then, I do the final polishing in OpenOffice.org Writer and send the finished product off to my editors.
With blog post, well … I’m not always connected to the Internet. Using Markdown, I can quickly write multiple posts and convert them to HTML. When I’m back online, I just copy and paste the posts into WordPress and publish them. It’s quick and it’s simple. In case you’re wondering, I mainly use Markdown in this way when I’m using my Eee PC.
All of this sounds like a lot of extra work, but it isn’t. I found that Markdown’s syntax was easy to learn, and I can write quickly using it. The conversion to other formats only takes a few seconds — open a terminal window, change to the directory where the file lives, quickly type a command, and the conversion is done.
The tools I use
Since Markdown-formatted files are plain text, I use a text editor. My editor of choice is Emacs. Please, no comments about how (enter the name of another editor here) is better than Emacs. I like Emacs. I use it. It helps me get the job done. And Emacs has a nice Markdown mode. The mode is easy to use and I can do a conversion to HTML from within Emacs.
Another tool that I’ve started to use is Writr, which is a dedicated Markdown editor. Writr is alpha software, and lacks features like syntax highlighting, automatic insertion of formatting characters, and spell checking. But it does have a nifty preview feature and is easy to use. Unfortunately, the software hasn’t been updated in over two years.
I’m also looking into using a WordPress Markdown plugin for this blog, which will eliminate the need to do the HTML conversion.
Remember when I said that I could convert a file to a word processor document? I cheat a little doing that. Markdown only outputs HTML. But using Pandoc, I can convert a Markdown file to RTF which OpenOffice.org Writer can open. I also wrote a little script that uses Pandoc to convert a Markdown file to reStructuredText, and then uses a utility called rst2odt.py to convert the file to OpenOffice.org Writer’s native format. OK, that was a tad geeky but it was fun. And useful.
Markdown isn’t for everyone, and it isn’t for every writing task. I’ve found, though, that for some of my writing tasks Markdown makes the process a lot quicker and easier. I can concentrate on writing text. I’m definitely not going to stop using tools like OpenOffice.org or LyX, but for I’m finding that Markdown is great for writing articles and blog posts.