QwikWiki (Qwiki) is a clone of WardCunningham's original WikiWikiWeb.
QwikWiki is an OpenSource implementation written by BillKelly in the PerlLanguage.
Note: QwikWiki has not been maintained or modified in over four years. I hear there are a few people still happily using it! But there are certainly a plethora of wikis to choose from these days. If you're still interested in QwikWiki, the source is available at:
http://tastyspleen.net/code/tastyspleen/opensource/qwiki/
Qwiki was written from scratch, based on a 53-line Wiki clone called Dinki hacked up in about an hour and a half to demonstrate to a friend the Power of Perl. :-) (The friend now runs QwikWiki on his server at http://www.leapfrogsw.com/cgi-bin/qwiki)
QwikWiki can be seen publicly at the following sites
QwikWiki adheres closely to
WardsWiki's feature set and interface in an attempt to maintain the
WikiZen and
WhyWikiWorks. (Maintain? Preserve? Continue? Not Wreck?)
If we started by assuming WardsWiki and QwikWiki are functionally identical, (and identical in presentation), here's how they currently differ:
- WardsWiki features not implemented in QwikWiki
- Definition lists and Block quotes. (Been meaning to add, haven't gotten around to it yet)
- Footnote-style URLs [1]. (Also would like to add)
- Cookie-based UserName. (Considering adding but not sure)
- SixSingleQuotes. (See BackTick? below)
- ConvertSpacesToTabs. (Considering adding; see also TabCharacterAvailableForCopying? below)
- Spelling Check. (Would like to add)
- QwikWiki features new to or different from WardsWiki
- BackTick?. Qwiki introduces a new syntactical element or metacharacter in an attempt to provide a "cleaner" solution to the SixSingleQuotes phenomenon. I was loath to add anything new to the syntax, for reasons I hope are obvious. But SixSingleQuotes in my view may have crossed some threshold where - although it's nice its functionality emerges as an artifact out of the existing Wiki syntax - I'm not sure its use doesn't add perhaps an unreasonable-looking amount of complexity in the EditText view of the page. QwikWiki's rule for BackTick? (`) characters is: for any string of one-or-more consecutive BackTick? characters in the WikiPage text, delete one BackTick? from each such string. So any single BackTick? disappears. If you want a single BackTick? to appear in the page, use two (``). This allows SixSingleQuotes behavior to be achieved by being written as Six`Single`Quotes. (Which, if this were QwikWiki, would have appeared as: SixSingleQuotes.)
- Deletable Pages. QwikWiki will remove a blank saved page from its database, provided no references to that page exist on any other pages in its local database. (Of course, it can't tell if any external web page referenced the page. :)
- Page Versioning. Although not presented as part of the standard user interface, Qwiki does keep "infinite" versions of edited pages. QuickDiff and EditCopy can access earlier page revisions by specifying extra information in the URL. Although mainly added as a "admin" security feature, I can also appreciate how the apparent (or public) lack of such a feature on WardsWiki may in a sense help to KeepWikiReal?. (For instance, I think - for better or worse - the WikiMindWipe would have lost a lot of its poignancy if infinite version history had been available.)
- TabCharacterAvailableForCopying?. A convenience on the EditText page, Qwiki provides a small text box containing a single tab character that can be copied and then pasted into the main edit text box.
- Incremental Fulltext Search Engine. QwikWiki provides a fulltext keyword search, that is always instantly up-to-date.
- This page is mentioned on... Qwiki's fulltext search engine works out to be efficient enough to allow Qwiki to list all other pages referencing (referring to) the current page, at the bottom of each page viewed. So far this is working out OK. I suppose with a Wiki page database numbering in the 10,000's (plus) like WardsWiki, certain pages may end up with an awful long list of referring pages.
- StoryMarkup?. This is an optional and only half-seriously added extension to QwikWiki that I hacked in one morning in an attempt to provide a simple-but-powerful meta language for describing interactive stories. I might remove this from future versions of QwikWiki, because I'm not sure it was quite as uber-powerful and simple as I'd hoped; but I did manage to implement the entire outdoor section of the original Adventure game in it, pretty faithfully, including the XYZZY teleporter. :-) [ This is now viewable online at www.foosenblat.org/cgi-bin/qwiki.cgi?ColossalCaveStory? (link dead - new domain owner) ]
--
BillKelly
CategoryWikiImplementation