Collaboration with EtherPad and Markdown

This post by John Resig (of jQuery fame) introduced me to a real-time, web-based, collaborative text editor called EtherPad. As a JavaScript guru, Resig’s interest in EtherPad is that it’s written entirely in JS on both the client and server sides. My interest is more prosaic--I see it as a great way to collaborate on reports.

Here’s how it works: you go to the EtherPad main page and click the “Create new pad” button. You’ll be taken to a page that looks like this:

You edit the text in the left half of the page. In the right half of the page are a set of options for how the text is displayed. You send the URL of the page to your collaborators, and you can all edit the text simultaneously. One of the text display options allows you to set different background colors for each person; that way you can easily see who wrote what.

One really neat feature is automatic versioning. Each time one of you clicks the Save Now button, the current state of the document is saved (as you would expect) and is given a revision number (as you might not expect). The revisions are listed in the sidebar, and you can at any time roll back to any of the earlier revisions.

I guess Google Docs lets you do some of this, but the parts aren’t color-coded by author and the updates don’t happen in real time.

The text editor part of EtherPad is pretty rudimentary if you’re used to working with a full fledged editor or word processor. I certainly wouldn’t want to write long stretches of text in it. But if you’ve assigned different parts of a document to different people (which is the way most of my collaborations work), each of you can write your part in whatever editor you like, then paste them all together in EtherPad and do the editing that standardizes terminology and smoothes out the transitions between the parts.

EhterPad works with plain text only, which is where the Markdown advantage comes in. Because it’s a plain text format, Markdown works with EtherPad. And because Markdown’s formatting is--unlike, say, HTML--minimal and unobtrusive, collaborators who write in MS Word can simply copy the text out of their Word document, paste it into EtherPad, and it will be pretty close to Markdown format as is. It will need some editing for things like section headings and lists, but that’s not much work.

As important as ease of editing is the readability of Markdown. The formatting “tags,” such as they are, don’t get in the way of the text; your collaborators don’t need to know Markdown to be able to read a Markdown-formatted document.

I’ve collaborated on reports before by way of email. The workflow has been:

  1. My collaborator and I write our individual parts.
  2. I get the text of her part via email.
  3. I paste her text into my Markdown document and Markdownify it.
  4. I convert the document to LaTeX (via MultiMarkdown) and then into a PDF.
  5. I email (or just print and give) the PDF to my collaborator.
  6. We go over the merged document and decide on the changes we need.
  7. I make the changes and generate the final PDF for delivery to the client.

The inefficiency in this workflow is not due to the collaborators using different tools, e.g., Markdown/LaTeX and Word. The inefficiency comes in Steps 6 and 7, when the two authors make individual edits and then one of them has to create the merged, canonical document.

EtherPad will change the workflow to:

  1. My collaborator and I write our individual parts.
  2. We paste our text into EtherPad.
  3. I Markdownify her text.
  4. We make the changes together in real time, talking on the phone as we type.
  5. I copy the document out of EtherPad and generate the final PDF for delivery to the client.

The big change is turning Steps 4–6 of the original workflow into Step 4 of the new workflow. Seeing your collaborator’s changes in the context of the full document instead of as a scribbled note in a margin or a dictated sentence over the phone will make the editing go much faster. It’s even better than having the collaborator and you in the same room, taking turns at the keyboard (which I have done and which is pretty efficient).

Tags: