A reimplementation of gitit in Yesod
Haskell CSS Shell HTML Makefile
Latest commit 04f0068 May 12, 2015 @thkoch2001 thkoch2001 solve some hlint issues
Failed to load latest commit information.
Network solve some hlint issues May 12, 2015
bootstrap @ 37d0a30
bootstrap-3.1.1-dist Upgrade to bootstrap 3.1. May 21, 2014
messages Replaced side navigation with dropdown menus in navbar. May 22, 2014
src extract WikiPage, PageFormat into WikiPage module Apr 16, 2015
static Replaced side navigation with dropdown menus in navbar. May 22, 2014
templates extract view templates Apr 21, 2015
.gitignore add .gitignore, ignore /dist/ Apr 7, 2015
.travis.yml travis: Install alex, happy. Apr 30, 2015
LICENSE Initial commit. May 9, 2012
Makefile Updated Makefile to use cabal sandbox instead of cabal-dev. Jan 13, 2015
TODO Updated TODO. May 22, 2014
settings.yaml Correct and simplify the logic introduced before to handle approot: Nov 15, 2014



gitit2 is a rewrite of gitit using the Yesod web framework. My intention is that it will eventually replace gitit.

To install:

cabal install

If you run gitit2 from the source directory, a default wikidata directory will be automatically created, based on the settings in settings.yaml. You will then be able to view your wiki at http://localhost:3000.

Why a rewrite?

The old code base was ugly, for a variety of reasons, including the fact that it dates from an early phase in happstack's history (when many things that are easy now were hard) and an early phase in the author's Haskell experience. Yesod provides abstractions, such as type safe routes, that make many of the ugly parts go away. The new code base should be much smaller, easier to modify, and easier to be confident in.

gitit2 is implemented as a Yesod subsite, making it trivial to embed a gitit wiki in a Yesod application.

What is still missing?

The basic wiki functions have all been implemented. You can create, edit, and modify pages. You can search, view history, and comment. You can export in any format that pandoc supports.

  • User login -- currently there is no access control.
  • Preview in edit.
  • Loading plugins (the plugin API works, but there is not yet support for specifying plugins in the config file).
  • Page locking (no-delete, no-edit).
  • Command-line option to specify a config file.
  • Site initialization wizard.
  • Documentation.
  • Multiple options for treatment of math in HTML.
  • Configurable session timeout.
  • Option to show bird tracks in LHS.
  • Log level options.
  • Configurabel mime types file.
  • 'absolute-urls' option for wikilinks?
  • 'feed-refresh-time' option?
  • Option to disable PDF export?
  • Option for pandoc user data directory
  • Option to disable sanitization?
  • System for customizing CSS

Hacking gitit2

Here are some notes for those who want to modify or add to the code.

  • The library is in Network/Gitit.hs.
  • The executable, which uses the library, is in src/gitit.hs.
  • On Debian you might want to install these build dependencies with the operating systems package manager: libzip-dev happy, alex