uWiki is a versatile Wiki engine that can be easily customized, updated, and expanded according to specific needs, making it an ideal solution for dynamic websites and collaborative work environments.
Additionally, users can have wiki content coexist with other static content in the same directory. Revision control is pluginable, with git provided for this feature. The engines for compiling static content are also pluginable (types), and new actions can be added to expand its functionality.
uWiki manages generic metadata and focuses on generating static content while being able to extend easily for dynamic content. The present implementation uses Haserl with bash as the scripting language, making it simple to prototype and extend the wiki. However, this is solely intended to provide a kickstart for implementations in other programming languages.
The uWiki directory structure is located at $DOCUMENT_ROOT/_uwiki/, and there are several key folders within. The "uwiki" folder is the main CGI script directory that contains the actions a user can request, along with additional functions. The "_types" folder contains a script for each type the wiki can handle, with a specified interface that makes them independent of the underlying engine used.
The "_meta" folder stores the metadata hierarchy and has a leading underscore in filenames. If a file in the wiki has generic metadata associated with it, there will be a directory reflecting the file in the "_meta" hierarchy (such as "_uwiki/_meta/foo/bar.html/ for foo/bar.html). The kinds of metadata available are implementation-dependent, with ACLs stored in "_acl," and the type stored in "_type" and so on. The "_groups" folder contains the group definitions for the ACL system in text files, with one user or group per line as members of the named group. Comments starting with # are supported.
For obvious reasons, uWiki refuses to manage files with leading underscores. To give it a more wiki-like appearance, the 404 Not Found document redirects to "_uwiki/create," where a user (assuming sufficient permissions) can select an option to create the desired content.
In conclusion, uWiki is a versatile Wiki engine that provides a variety of features, supports multiple pluginable options, manages generic metadata, and focuses on generating static content. Its directory structure is simple to navigate and well-organized, making it an ideal choice for those seeking to implement their own wiki.
Version 0.1 Alpha: N/A