Wixer
A wiki with pretensions
Wixer is a wiki compiler based on Adam Megacz's
WiX. It has a fully specified formal grammar, pre-compiles web pages, and an AJAX web interface.
News
3 July 2008
Version 0.8 released. Many bugs have been fixed and a graphical diff has been added to the preview dialog.
25 June 2008
Version 0.7 released. Remove the JS fading gimmick that doesn't work on slower computers, compile with Java 1.5 instead of 1.6, and some more name changes.
Features
Pages are compiled to .html files the moment they are changed. This means that no dynamic server is needed to keep your web site online. The recommended deployment strategy involves a vanilla httpd like Apache serving out the html, and proxying the edit requests to a behind-the-scenes Java Servlet.
Revision history is stored in a
git repository.
It is pretty, both the markup language itself and the resulting html.
Wixer, thanks to Adam Megacz's
WiX, has a
formal grammar, meaning that its behaviour is fully specified and it is easy to extend.
The grammar is presentation neutral, meaning it is easy to write renderers for all sorts of crazy formats. Expect a PDF renderer soon.
-
Installation
To get a feel for things, download the standalone Wixer binary and run it with:
java -jar wixer-standalone-0.8.jar --newUsers
You can then start using your web site on
http://localhost:8447/. Settings are controlled by command-line switches:
$ java -jar build/wixer-standalone-0.8.jar --help
Wixer Standalone 0.8, Copyright 2008 David Crawshaw.
Usage: java -jar wixer-standalone.jar [--option=val ...]
Options:
--address = set the listening address (default: localhost)
--auth = name of kerberos context (default: )
--dbFile = SQLite file for login details (default: /wixer.db)
--logfile = write log to file (default: stdout)
--newUsers = allow anonymous user creation (default: false)
--outputDir = where WiXi renders the html (default: .)
--poolsize = number of concurrent editors (default: 5)
--port = set the listening port (default: 8447)
--rebuild = regenerate all content (default: false)
--repoDir = the bare Git master repository (default: ./wixer.git)
Apache
It is best to share out the static Wixer content with a normal web server. The common choice for this is Apache. Just point the document source at the Wixer outputDir, and then use mod_proxy to pass /wixify/RPC and /wixify/Upload through to the standalone Wixer server. This should look something like:
ProxyPass /wixify/RPC http://localhost:8447/wixify/RPC
ProxyPassReverse /wixify/RPC http://localhost:8447/wixify/RPC
ProxyPass /wixify/Upload http://localhost:8447/wixify/Upload
ProxyPassReverse /wixify/Upload http://localhost:8447/wixify/Upload
ErrorDocument "404" /wixify/404.html
Setting the ErrorDocument directive lets Wixer catch new pages and redirect the user to the edit page.
Usage
Wixer is designed to be intuitive, so the best way to learn is just to look at the source to a page. There is however, the beginnings of a
markup page.
Mailing List
Wixer has a
mailing list, follow the link to subscribe and once the project is a bit more mature I hope the
archives will be useful.