Joachim Breitner

Latexki, a Wiki for LaTeX in Haskell and Python

Published 2006-10-01 in sections English, Haskell.

After two years of using lkwiki, an old kwiki version that was extended to support full LaTeX documents to be managed and to store it's information in subversion, it is time for a rewrite. This week, I built the basic working foundation, in time for the new term at my University in Karlsruhe, but hopefully also for other people to use. So hereby, I announce:

Latexki, a Latex Wiki

Latexki consists of two parts: The latexki binary, written in Haskell, is called by subversion after a commit and generates the static wiki pages (both text and LaTeX-based). It only updates what's needed (since running latex is expensive), but tracks dependencies like \input in LaTeX. The other, actually optional, part is a CGI script written in python which provides simple write-access to the subversion repository and which should handle conflicts with the same grace as subversion itself.

Some, especially the planet.debian.org readers, will now immediatelly say that this is the same idea as Joey's ikiwiki and that I should just have extended his software. Now, I had the idea independently (after all, lkwiki works like this for two years now), and while ikiwiki is more a general purpose wiki, I wanted to create a tool specifically tailored for the collaborative management of LaTeX documents, the text pages are just side-play. Also, I wanted to to my own thing to use the subversion bindings to access the repository directly, without the need of a working copy, for the edits. It turned out that with pysvn, this is not possible, but at least I don't have to call the svn binary and using temporary directories for the working directory should be a clean solution.

While the code is basically working, it still needs some testing. I'm also very eager to hear comments about the code itself, especially from a security point of view, but also from a "how to this nicer in haskell" point of view. You can find the code on the wiki itself, as all non-wiki, non-latex files are just wrapped in <pre> and put on their own page. Also, the TODO list is long. Patches are welcome, and if you want to use the software yourself, I'll help with any deployment problems.

To the lkwiki users: I plan to switch the lkwiki repository to latexki before the semester starts. Some files will have to be renamed, and some detail code to be written. Feel free to test the latexki code to make sure we don't have problems then.

Comments

Have something to say? You can post a comment by sending an e-Mail to me at <mail@joachim-breitner.de>, and I will include it here.