Killring Rick Dillon's Weblog

Gollum: The Ultimate Personal Wiki

You may already know that this blog is powered by Octopress (it says so at the bottom), which is a Ruby-powered static site generator. In the course of my travels, I found a wiki written in Ruby as well, courtesy of the folks over at GitHub. The wiki is called Gollum, and it powers GitHub's project pages.

Gollum is badass.

For one, it accepts a whole slew of markup formats, including Org Mode (via org-ruby), but also the usual suspects, including Markdown, Textile and Creole.

It also comes with a built in web server. As I learn Ruby, I've noticed this trend in Ruby projects. One of the side-effects of a language with excellent package support (via Gem) is that a crop of lightweight web servers are available by just adding a single line to a project file, and that means that any project that generates content for the web gives the user a local server to preview everything locally before pushing it live. Octopress, YARD and Gollum all have simple commands that fire up a server on your local machine to serve the content you've been creating. The side effect of this is that even if you never intend to actually publish the content to the web, you can use the system for your own personal notebook.

Another thing that makes Gollum awesome is that it supports editing content in the browser like a traditional wiki, but it also supports writing the content in a text editor. If you're a power user that feels strongly about which text editor you use, this is a godsend for content creation.

Finally, Gollum is based on Git, which isn't entirely surprising given its origins. A few years ago I actually wrote a distributed wiki in Python on top of Mercurial called Wikid, so this is an idea I've been toying with for a while now. Distributed version control makes an excellent basis for a wiki for a bunch of reasons. In the case of a conflict, you get real merging instead of a nice message telling you that the page has changed and you need to start over. You also get to push and pull content around with simple commands, like "git clone /that/wiki/over/there", which not only gives you the current state of the wiki, but all edits ever made to it. This is a killer feature for offline use and keeping lots of mirrors of the data around.

So, if you're toying with the idea of running a personal wiki for your notes, or even want to fire up a guerilla wiki at work to coordinate with your co-workers, Gollum is a pretty good bet.

git clone git://github.com/github/gollum.git