A Wala is very much like a Wiki.
What's a Wiki?
Good question. A wiki is a website where anyone can change any page at any time. The entire website can be completely rewritten by anyone. This means that any errors can immediately be fixed by anyone who happens to see those errors.
Moreover, a wiki uses a very simple markup syntax. Instead of using HTML's sometimes confusing tags (like <p> and </p>), wikis use simple characters like ''this'' for emphasis or '''this''' for bold.
(And most wikis keep backups of all pages, so that vandalism can be fixed.)
What's a Wala?
A Wala is a wiki that has been changed to be more friendly to casual readers and contributors. Editing the complete text of any page can be intimidating to many, especially when all they want to do is add a comment to a page. So, a Wala is a wiki with two main changes:
- There's a text box at the bottom of every page, allowing anyone to add to the page at any time, right from that page. Their contribution is added to the bottom of the page, in a style similar to that of IRC chat conversations.
- You can still edit the text of any page at any time. However, the (usually extensive) navigation links at the bottom of every wiki page have been pared down considerably, so that Wala pages are less intimidating.
Can I try out a Wala somewhere?
I used to have a Wala set up here, but sadly became a spam trap. If you find a good sample installation, please let me know.
How can I get a copy of Wala?
Here's the code; it's written in Perl.
The current version is 1.1.7.
What are the features of Wala?
- ''italics'' and '''bold'''
- A line that starts with "----" is displayed as a horizontal line
- A line that starts with ":" is indented.
- A line that starts with a space is printed in a
monospace font, useful for code snippets - HTML is displayed the same way it's typed in
- A line that starts with a * is displayed as an item in a bulleted list
- A line that starts with a # is displayed as an item in a numbered list
- WordsSmashedTogetherLikeSo links to a Wala page
- Words surrounded with [[ and ]] link to a new Wala page; if there's a | character, everything before the pipe is the name of the page and everything after is what to display instead of the name of the page
- http:, ftp:, gopher:, mailto:, and news: link to the appropriate URL; surround it with brackets to create a named link (e.g., [http://www.yahoo.com/ Yahoo])
- The URL of an image is displayed as the image itself
- All changes are logged
- Preferences (just username for now)
- Recent Changes
- Put <recentChanges 5> anywhere on a page to print out the 5 most recently updated pages
- Separate .css files for screen and print rendering
What are the new features in 1.1.x?
- I fixed a problem with the URL-handling script; before, it looked for URLs preceded by a space or the beginning of the line, so it wouldn't parse something like (http://www.yahoo.com/) correctly. Now, it should match any legal URL anywhere in the page.
- The index of all pages is now alphabetized, whereas before, it was not.
- [[]] would not work if it linked to a WikiWord before. That has been fixed.
- The script used to not recognize ~ or _ in URLs. This has been fixed.
- The script used to not recognize WikiWords in URLs. This has been fixed.
- Malicious crackers could append a ; and a command and it might have been executed on the server. This is no longer possible; everything after the first ; in a WikiWord is removed.
- Added support for a separate CSS file for printing. You can also hide the display of "http://" in URL links by adding "span:printonly { display: none; }" to a CSS file.
How do I set up a Wala?
Download the code and copy it to the cgi-bin directory on your server. Create a new text file named wala.pl in the same directory as Wala.pm, and put the following three lines in it:
#!/usr/bin/perl
use Wala;
Wala::run;
Then, make sure that wala.pl has full execute permissions (type chmod a+x wala.pl on the command line).
If the Wala still doesn't work, you may need to add this to the beginning of Wala.pm:
BEGIN{push (@INC, "/absolute/path/to/Wala/")} use Wala;
It doesn't work!
- Make sure that
wala.plhas full execute permissions. - Make sure that there's a file named
perlin the/usr/bindirectory on your server. If it isn't, modify the first line ofwala.plto the correct path. - Make sure your server has been set up so that you can execute CGI scripts in the directory you placed
Wala.pm. - Make sure that
#!/usr/bin/perlis the first line ofwala.pl. - Make sure you're running a recent version of Perl, by typing
perl -vat a command prompt. If it's less than 5.0, ask your sysadmin to upgrade Perl, because it's awfully old. If it's at least 5.0, you're probably fine.
Have you written a test suite for the Wala?
Yes, and you can download it here. Rename it to "test.pl", place it in the same directory as your Wala.pm file, and run it.