HomePage
Running an invisible wiki engine
How to install and configure an invisible wiki engine to power your website
Examples of sites run by an invisible Wikka engine
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:
- anyone can edit the content of a wiki;
- 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:
- recent changes links;
- login links;
- last edit information;
- last author information;
- history/revision links;
- comments;
To address this issue, I propose in this page a very simple solution.
An 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':
- Optionally, you might want to delete or mask all the default wiki-related pages, like - say - WikkaDocumentation or PageIndex. To do this, open the page and either:
- append /delete to the page URL to remove the page;
- 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:
"navigation_links" => "[[UserSettings login]]",
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;}
.commentsheader {display: none;}
.comment {display: none;}
.commentinfo {display: none;}
.commentform {display: none;}
.smallprint {display: none;}
.exttail {display: none;}
An example of a similar CSS configuration can be found on the
skin selection page (
void.css).
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).
- Also keep in mind that some browsers don't implement stylesheets at all, including text browsers like Lynx, but also some graphical browsers. If stylesheets aren't implemented, all text will appear. A few approaches are possible to have less appear:
- use the {{nocomments}} action to completely suppress the comments area
- use a stylesheet (rather than the Formatter) to generate "link tails" (or prefixes): no stylesheet, no tails
- edit header.php and footer.php to remove unwanted elements
- BTW, I looked at the Soasi site but it doesn't look very "invisible" to me - there's even a login link which brings you to the standard form where you can create an account - and the layout looks rather familiar except that some elements are removed. --JavaWoman
That's all folks. Comments and suggestions are welcome
--
DarTar
CategoryEN