Looks like this is going to be a semester of discoveries for me. While working on my data visualization project, I discovered IRC. While working on my parallel programming project, I discovered a great lightweight wiki software called DokuWiki. We’re a small team (2-4 people depending on how you count) and we needed a place where we could gather our findings and record our work. We tried to use Google Wave in the start, but it didn’t quite work out. Wave is nice when you need to collaborate in real time and what you’re doing is mostly brainstorming. But if you’re working at a slower pace and need more structure, it just doesn’t feel right. More on this later.
What we wanted was a solution that was quick and easy to set up, was resource-light and could be hosted locally. We thought about larger wiki systems like MediaWiki but we settled on DokuWiki. First off, it’s flat files: no database or SQL required. It makes a point of being lightweight, so there’s no WYSIWYG. Instead there’s a simple wiki syntax instead that suits us hacker types just fine. Looking at the configuration page you can easily tell that it’s focused on functionality rather than looking pretty. But that doesn’t mean that it short on features or good design. It tracks revisions (with short commit messages as well) and has a really nice visual diff tool. Using Git for the better part of a year has made me really love good diff tools.
The wiki syntax is also well thought out. There’s little redundancy but strong features. And CamelCase is optional. Links are enclosed in double square brackets in the form of
[[url|link text]] and you can make new pages just by putting in an empty link. It supports multiple level of headings and generates an automatic table of contents for any page with more than 3 headings. Though the design is simple and minimal, it does look pretty good. It’s clean and standardized so you won’t get lost and the edit controls are neatly tucked into bars at the top and bottom. It looks more polished than a default MediaWiki setup, for example. It’s easy to tell that DokuWiki is meant to be a clear documentation tool as opposed to another “build my website quickly” software and in our case, that’s a good thing.
And did I mention the sourcecode support? It uses the GeSHI syntax highlighter, meaning that it supports a wide variety of languages (including some fairly obscure ones like Lotus Formulas and LocoBasic). You can also turn snippets of code into downloadable files by just specifying a filename. You can tell that this was a tool made for hackers by hackers. And of course I just love it. Uploading images is easy, but if you want to add files with other extensions, you need to edit a config file which shouldn’t be a problem for most people who’ll be using this sort of software.
There are a number of other goodies in the bag that I haven’t had time or cause to investigate (including plugins). The fact that I’m not administrating the installation means that I won’t be playing around with it as much as I could, but I think I can turn it into a user point-of-view experience. I wish there was some easy theming support, but I can live without it. This is the first time that I’ve used a self-hosted wiki and though I’ve had experience with other wikis in the past (I like PBWorks) I think I’ll definitely turn to DokuWiki if I need a simple but strong wiki for a code-focused project in the future. I might consider hosting it on my personal server in the near future too and get some more chance to play with it. Right now I’m perfectly willing to keep it simple and focus on my real work (more on that later too).