Spi Ke


Actually spelt Spike - a WikiClone being developed by DaveHarris and RalphMellor.

Spike is the first stage of a 3-stage project. It's currently being programmed in Java, as a servlet, and is intended as a breadboard for trying out a number of ideas for groupware. It will not, ultimately, be very wiki-like.

Ralph and Dave hope to make money from it, although not necessarily from selling the source code. Some or all of the code may end up under the LGPL.

The general approach is to treat pages as Java objects, with different kinds of pages belonging to different classes. Thus a UserName page would have different features and commands to a normal page, so that it can store user-specific configuration options. Pages are organised in groups, with each group having an administration page that controls policy for all the pages in it. Eventually users should be able to develop new policies by adding .class files to the system on the fly, through the page UI, within a Java sandbox for security.

Pages are currently stored in flat files rather than a database. They are also stored in a parsed, binary form rather than as ascii. The text you edit is regenerated from the binary form, just as the HTML is, so it may not be exactly what the previous author saved. This is a mixed blessing - it can mean you are given a clearer picture of what the parser thought you meant.

One of Spike's features is the ability to treat names like Spike as LinkPattern(s) :-) Specifically, minor changes that might interest other WikiClones include:

  • LinkPattern stuff
    • A LinkPattern that treats any word with a capital after the first letter as a link. (Cf CvWiki)
    • ?word is treated as a link even if it doesn't match the standard LinkPattern. Also, links to pages which don't exist are displayed as ?link rather than link?.
    • [link] is turned into an off-page link, which displays as [1], [2] etc with the number being generated automatically. This replaces the EditLinks page. The link can be BumpyCase, ?link, or an URL link.
    • ["text" link] is turned into a link which displays as text. This is almost as powerful and difficult to use as a plain HTML <A> tag.
    • Not done, but planned, is to use !link to indicate TransClusion, ie the linked content gets embedded into the page, inline. This will probably only work for local pages, not arbitrary content as in CvWiki.
  • Formatting stuff
    • All tabs are converted into spaces, with tabstops set every 4 columns. There is no "I can't type tabs" checkbox.
    • Lines begining with white space, which are not ordered or unorder lists, are simply indented (as opposed to being considered pre-formatted). I believe that a general indentation scheme is crucial for structuring documents.
    • Currently the only way to do preformatted text is via an HTML escape using <PRE>.
    • HTML escapes are supported if the page's owner says they are. They are flagged by a paragraph that begins with <HTML>.
    • _word_ and __text__ produce <EM> text; *word* and **text** produce <STRONG> text (cf JosWiki). This is in addition to the standard double single-quote and triple single-quote. You can use all 8 formatting codes as many times as you like on a line. (I just got bitten by Wiki's restriction while typing this list.)
    • The quality of generated HTML is better. (I find that Wiki produces too many paragraph breaks, which looks ugly with my browser.)

Spike is not yet running on a public server anywhere.
Have you looked at Jigsaw from W3C at http://www.w3c.org/Jigsaw?

DaveHarris replies: I'm aware of various Java-based servers, but it's not my intention to write a server myself, or to require that the server be written in Java. Servlets will work with most servers.

That said, tighter integration with the server could have advantages. And I admire Squeak, from afar - a Squeak-based server sounds quite interesting. It may turn out that the stuff I'm really interested in would fit best as a component within something like MuWeb or SqueakWiki.


Last edited January 11, 1998
Return to WelcomeVisitors