Tuesday, May 10, 2011

another git wiki: ikiwiki

On my previous blog entry about gitit, a wiki that uses git to store and revision all its data, a fellow named Richard commented:

"Why not ikiwiki? Actively maintained, lots of plugins and works as a blog engine so you don't have to use blogger.com ;)"


My answer was simple: it hadn't shown up in searches I'd done. I probably share some of the blame for that, but it also highlights that as a F/OSS project getting the word out and making sure you are prominent, particularly for common search queries, is important. In this case, I missed ikiwiki, but Richard made sure that didn't last long. ;)

I managed to find some time at the end of a long day yesterday to toy with ikiwiki and since I had spent time writing about how great gitit is (it really is! :), I figured it would be nice and fair to at least try ikiwki and report back.

Here is my verdict in summary: it's an excellent tool, far more capable of gitit, but also comes with a lot more overhead in terms of setup and management. It is a classic trade off between power and ease of use.

ikiwki requires an investment in time to set up. If you are running Debian, there are packages for it, otherwise you'll be installing lots of perl modules (thank goodness for CPAN!) and reading the not-as-coherent-as-it-could-be documentation on getting it set up. I felt a little like I was building Plasma Desktop from scratch at times with all the dependencies. ;)

Once ikiwki is set up, you next need to ensure the webserver is set up properly. Unlike gitit, ikiwiki does not provide it's own web server, which is not a bad thing. It just means it's one more bit of software to configure. Thankfully, other than a missing ExecCGI directive, openSUSE's apache2 install is perfectly set up to host ikiwkis in your home directory.

Then there is the configuration. Richard was right, ikiwiki has tons of plugins. Which means choosing which to enable and which not to, and how to configure the ones you do enable that have configuration options. Thankfully the setup page is available via the web interface itself, though the configurations options are often rather cryptic. I wasn't sure what some of the things did, but with some experimenting I figured it out. (Flashbacks to KDE software from the KDE2 or 3 days. :) One thing to keep in mind when trying out ikiwiki is that it looks horrible by default, but if you just put "actiontabs" in for the theme plugin configuration it looks far more sensible.

For the investment of time you get a wiki with full text searching, caching, templates, tags, link tracking and all sorts of other goodies. It does have it's flaws: the management UI is nothing to write home about, the permission management is primitive and the documentation could use some help. ikiwki stores the pages in markdown, but doesn't seem to provide conversion utilities to other formats (other than HTML, of course), but you can easily use pandoc for that.

However, with ikiwiki you do get a very capable, light-weight wiki suitable for group editing and all backed by git for easy replication and interaction behind the web interface, and that could well be the killer feature for ikiwiki: a git backend with lots of features on top.

So now I have not one but two great tools to choose from: gitit when I need something fast to set up and easy to use, and ikiwki when I need something with more features. Got to love Free software. :)

5 comments:

Richard said...

In case you care, that Richard is RichiH@{freenode,OFTC,IRCNet} and runs richardhartmann.de with ikiwiki.

While ikwiwiki defaults to Markdown, it supports WikiText, pure HTML, reStructuredText, and Textile as well. Other may or may not be listed at http://ikiwiki.info/plugins/ .

As to conversion, there is basic support for importing Wordpress exports. We are working on making this one work fully which may lead to a surprise down the road. And no, I am not telling you who "we" are.. ;)

One thing of special interest to me is that as ikiwiki's back-end is git-based, it would be trivial to include a KDE wiki, techbase, what have you in the main source of KDE and provide scripts to build manpages, PDF, whatever from the same source.. *hint* *hint* *prod* *prod*

Richard said...

PS: ikiwiki itself does not even need git or any VCS. It simply works well with git.

But you can use plain files, svn, bazaar and pretty much everything that offers post-commit hooks, cron jobs or if you are willing to execute it by hand.

The User said...

While the git-ideal might be nice for a Wiki, that software seems to lack semantic features, which are much cooler than git in my opninio. Cf. Semantic MediaWiki.

Aaron J. Seigo said...

@The User: i agree that semantic features are great, but a distributed revision control system is an absolute must have for what i'm wanting to do. it isn't so much that i'd prefer a wiki with an RCS because it's a nice idea: to enable the workflow i need, an dvcs is a requirement :)

kitamozihr said...

"it hadn't shown up in searches I'd done"

I always use ohloh.net for searching open source projects...