StatWiki

Name

StatWiki

License

GNU GPL, Version 2

Homepage

http://code.google.com/p/statwiki/

About

StatWiki is a trimmed down wiki engine that generates static HTML files from wikitext.

It was originally created by José Fonseca by trimming down the MoinMoin wiki engine and adopting its syntax to Google Code's wiki syntax. The original code can be found on his web site:

http://code.google.com/p/jrfonseca/wiki/StaticWiki

A static wiki

A static wiki keeps the pages (as wikitext) in separate *.wiki files, as opposite to a standard wiki which usually uses a database. The wiki doesn't provide any edit capabilities, one has to use an external text editor to edit the *.wiki files. The conversion to static HTML files is then done by starting the StatWiki.

The advantages of this approach are:

  • Static wiki may be used to create information oriented websites hosted on simple static servers (with no support for server side scripting) while preserving the ease of editing and adding information of a wiki.
  • No files are written, or databases accessed by the web server, so no need for world writeable directories, or world readable passwords.
  • The content being plain text files can be managed by an external tool such as a versioning system (CVS, SVN) rather than the Wiki engine itself.
  • Edit access is given by the managing tool (file system access, repository commit access), so the access control is not duplicated.
  • It can be easily used off-line.
  • Static HTML files are served much faster then dynamically generated ones.

And the disadvantages are:

  • There is no web interface for editing and previewing the wiki pages.
  • No dynamic content means the site navigation is limited. No search or similar functions (search could be added using external services, like Google Custom Search).

Extensions

The StatWiki as created by José Fonseca was taken by me and extended. Some of the most important changes are:

  • New command line interface including standard build options (make, build, clean) using the Python's standard optparse module.
  • Unified per-wiki configuration using Python's standard ConfigParser module.
  • External HTML generator system based on Python with support for adding per-page code (variables assignments, etc.).
  • Categories support (used extensively on this wiki).
  • Automatic synchronization with HTTP server over FTP.
  • New default template.

As an example of the generator, this page uses this mechanism to automatically compute the following information during processing of this page.

Built on Python 2.6.3 running StatWiki 0.85.5 on Windows-post2008Server-6.1.7600.