Running an invisible wiki engine

How to install and configure an invisible wiki engine to power your website

Watch a video tutorial

Wiki engines are more than engines for wikis

A common misunderstanding about wiki engines is that they can only be used to run actual wikis (or web-based collaborative projects like, for example, Wikipedia). Wiki engines are, on the contrary, a simple and effective solution for maintaining and managing different kinds of non-wiki websites, without bothering with FTP connections.

Two frequent arguments about the fact that wiki engines can only be used to maintain wikis are the following:

  1. anyone can edit the content of a wiki;
  1. wiki engines make sites look wikish;

Both arguments are false.

Regarding A), editing privileges in many wiki engines, including Wikka, can be set on a per-page basis through Access Control Lists. A wiki engine can thus easily restrict read-, comment- or write-access for specific pages to no user, a specific user or more users.

As for B) - one might argue - a site run by a wiki engine will probably look too "wikish" for one's (and one's users') taste, with a lot of links and features that usually are not expected on non-wiki sites. Wiki-related features typically include:

To address this issue, I propose in this page a very simple solution.

An invisible wiki engine?

[preview of site run by invisible wiki engine] [editing a site run by invisible wiki engine]

I use WikkaWiki as a backend for my personal website, so I can update the content with a simple double-click anytime I need to. I have configured my Wikka engine so that all wiki-related features are hidden to the user in graphical browsers. No code modification is required, only the setting of specific options in the configuration file and some minor changes in the stylesheet.

The configuration

If you want to use Wikka as an invisible backend to power a non-wiki site, here's what you need to do.

First, you will need to restrict write access to the administrator (i.e., yourself), so as to prevent other users from modifying the content of your site. Open wikka.config.php and set the ACL options as follows:
    "default_write_acl" => "!*",
    "default_read_acl" => "*",
    "default_comment_acl" => "!*",

These settings mean that by default anyone is able to read wiki pages but no one except the administrator can modify them. You can also set all the default options to !* and decide to give read access to single pages only.

Second, hide comments by setting the relevant configuration option to '1':
    "hide_comments" => "1",

Optionally, you may want to delete or mask all the default wiki-related pages, like - say - WikkaDocumentation or PageIndex. To do this, open the page and either:
  1. append /delete to the page URL to remove the page;
  1. append /acls to the page URL (or click on Edit ACLs) to set the access options for this page as: !* - !* - !*;

Reduce the navigation links to the minimum necessary for instance:
In Wikka 1.1.x you can modify the values of navigation_links and loggedin_navigation_links in the config file:
    "navigation_links" => "[[UserSettings | login]]",

Since Wikka 1.2 you can control the content displayed in navigation bars and menus via menu template files.
You might also want to hide the login page. To do this just mask or delete the default UserSettings page, after creating a new login page (a page with the {{usersettings}} action) not linked from any other page of your website.

Modify the stylesheet to hide wiki-related page elements. In order to do so, open .css/wikka.css. First make a backup of this file so you can restore the original stylesheet if needed. Then, look for all the components of the page that you want to be invisible to the user and mask them. This can be easily done by adding to the relevant CSS selector a display:none attribute. In my stylesheet, I mask the following elements:
#header h2 {display:none;}
#footer {display: none;}
#comments {display: none;}

Keep in mind that the hidden elements (including links) are still visible in the page source so they will be crawled and cached by search engines. To prevent this, change the ACL settings or remove these pages as suggested at point 3).

That's all folks. Comments and suggestions are welcome
-- DarTar

Comment by BrianKoontz
2009-03-08 23:13:28
DarTar, a couple of the links in your sidebar appear to either be dead or no longer pointing to a WikkaWiki site...
Comment by DarTar
2009-03-09 03:29:22
fixed, thanks
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki