Ex Bibliotheca

The life and times of Zack Weinberg.

Monday, 18 July 2005

# 3:55 AM

I have just had an idea. I'm not quite prepared to talk about the idea itself yet. One thing is clear, though: in order to build it, I need a Wiki engine. And all the Wiki engines I currently know about, don't do what I want. To work, the engine has got to do the following things:

  1. Must be written in a programming language I already know - read "Python or Perl". I'm not wanting to go learn a whole new language for this.
  2. Must allow me to swap out the wiki-markup parser for something of my own invention. (No existing wiki markup is quite right for this.)
  3. Must have pluggable back-end formatting machinery, so that I can render pages into something other than HTML.
  4. Must use a real version control system (CVS or better) to store the source text of each page.
  5. Related: if someone edits a page by direct access to the version control system, rather than through the browser interface, the wiki engine should notice and update the page. (I don't care how it notices.)
  6. Also related: should allow there to be other stuff in the VCS repository than just the wiki. In CVS terms, it shouldn't require an entire module to itself.

So, before I go out and write an entire wiki engine myself, does anyone know of an existing system that does all the above things? Failing that, does anyone know an existing system that satisfies at least (1) and (4)? [I have skimmed WikiEngines; none of the options is obviously what I want, and I'm not feeling up to reading all the project pages in hope of finding the right one.]