[Haskell-cafe] ANN: gitit 0.6.1

John MacFarlane fiddlosopher at gmail.com
Tue Aug 25 11:54:34 EDT 2009

I'm pleased to announce the release of gitit 0.6.1.

Gitit is a wiki program that runs on happstack, the Haskell web
application server stack, and stores pages and other content in a
git or darcs filestore. The wiki can be updated either directly
through the VCS or through gitit's web interface. Pages can be written
in (extended) markdown, reStructuredText, HTML, or LaTeX, and exported
in ten different formats. TeX math is rendered using MathML by default,
and syntax highlighting is provided for over fifty languages.

demo:   http://gitit.johnmacfarlane.net
manual: http://gitit.johnmacfarlane.net/README
api:    http://hackage.haskell.org/package/gitit-0.6.1
code:   http://github.com/jgm/gitit
bugs:   http://code.google.com/p/gitit/issues/list
group:  http://groups.google.com/group/gitit-discuss

Here is how you can install and run gitit. You'll need GHC and
cabal-install. If you don't have these, install the Haskell Platform
<http://hackage.haskell.org/platform/>. Then:

    cabal update
    cabal install gitit
    mkdir mywiki
    cd mywiki
    gitit      # now browse to http://localhost:5001

Or, if you want to change the defaults (say, reStructuredText
instead of markdown, or darcs instead of git):

    gitit --print-default-config > gitit.conf
    # edit gitit.conf, which is self-documenting
    gitit -f gitit.conf

The whole code base has been overhauled since the last release.
Gitit is now faster, more memory efficient, more modular, and more
secure. It also has many new features, including

  - page metadata and categories
  - atom feeds (sitewide and per-page)
  - support for literate Haskell
  - a better configuration system
  - an improved caching system
  - a Haskell library exporting happstack wiki handlers
  - a plugin system

The last two items are the most exciting and deserve special comment.

First, in addition to providing an executable, gitit now provides a
library, Network.Gitit, which makes it easy to include a gitit
wiki (or many of them) in any happstack application. It is
even possible to use the containing application's authentication
system for the wiki.

Second, gitit can now be extended through plugins, short Haskell
programs that are loaded dynamically when the server starts. For
examples of the things that can be done with plugins, see the
plugins directory, which contains (among other things) a plugin
for adding graphviz diagrams to pages and a plugin for adding
interwiki links.  For a full description of the plugin system,
see the haddock documentation for Network.Gitit.Interface.

Full changes from version 0.5.3, as well as upgrade instructions,
are available in the file CHANGES.

Thanks are due to

- the happstack team, for big improvements in happstack-server
  that make it much easier to work with,

- the darcs team, for using gitit/darcsit for <http://wiki.darcs.net>,
  giving gitit a real-world test,

- Gwern Branwen, who helped to optimize gitit, wrote the
  InterwikiPlugin, and wrote the guts of the Feed module,

- Simon Michael, who contributed several patches,

- Henry Laxen, who added support for password resets and helped with
  the apache proxy instructions,

- Anton van Straaten, who made the process of page generation
  more modular by adding Gitit.ContentTransformer,

- Robin Green, who helped improve the plugin API and interface,
  fixed a security problem with the reset password code, and made
  saving of the user's file more robust,

- Thomas Hartman, who helped improve the index page, making directory
  browsing persistent,

- Kohei Ozaki, who contributed the ImgTexPlugin,

- mightybyte, who suggested making gitit available as a library,
  and contributed a patch to the authentication system,

- and everyone else who contributed suggestions and bug reports.

More information about the Haskell-Cafe mailing list