
 = Available Wiki Systems


 INTRODUCTION

   This file purports to contain information about 'wiki' systems which
   are available on the Internet. A wiki is a system which allows all
   visitors to a web-site to edit the pages, and create new pages, for
   that site. The editing and creation process is normally done through a web
   HTML form based interface

   Also included here is a section on 'plain text markup languages'. These are
   sytems which allow the writer to use some very basic structures in order to
   dictate how the text file will appear or be interpreted when it is
   transformed by a particular piece of software. The section on plain text
   markup languages is included here because almost all 'wikis' use some kind
   of plain text markup language in order to allow the user to edit the HTML
   pages. This is designed to achieve two things: the web-visitor does not
   need to know HTML, and the web-visitor does not need to install any piece
   of software in order to edit the web-pages (such as, for example, a wysiwyg
   HTML editor) since the normal HTML textarea form component can be used by
   the web-visitor to make changes to the existing web-page. This assumes, of
   course, that there is a piece of software running on the WebServer which is
   capable of transforming the plain text which the web-visitor creates or
   changes into an HTML format. 

 INVISIBLE MARKUP LANGUAGE

   This is my idea of a better plain-text structuring. It contains as little
   actual markup as possible, and the markup which it does contain is unobtrusive.

   Allow the user to down load the source
   file in various formats: docbook, text, html. Have a 'view source' link to
   allow the user to see the plaintext behind and html doc.

   Have an [FAQ] tag which allows faq sections to be formatted properly.
   Have some symbols after the page title to determine things like, is a 
    table of contents generated, numbering of headings, etc

 RELATED FILES
  
   * The Web collaboration review |/alexis-info/docs/web-collaboration-review|html|txt|
     This file contains some information about various kinds of web collaboration
     software, usually where the collaboration takes place through HTML forms, rather
     than a software component written in some other languae.

 WIKI SYTEMS

   * The MoinMoin Wiki|http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/MoinMoin|
     This is the wiki used by the http://www.docbook.org/wiki/ site. It is written
     in python and looks reasonably good. There seems to be a slight problem using
     this is the lynx browser because lynx may not be able to insert newline
     character in textareas (although it does seem odd), which makes it very hard
     to write text which will be formatted nicely.

   The tikiwiki
     Another system

   http://www.twiki.org
     This is a very widely used wiki system, (eg http://www.java.net) which is 
     written in perl and runs as a cgi script. It has good 'differences',
     templates, access control and is generally fairly shmicko
     However it does suffer from the usual problem that the actual wiki plain
     text looks like a dogs breakfast because of all the strange little
     markup codes in it (although its still better than, say, html)

   http;//tavi.sourceforge.net
     Another system probably not as mature as above.

 NOTES ABOUT PLAIN/ MINIMAL TEXT MARKUP LANGUAGES
  
   The philosophy behind a 'plain text markup language' is to allow a writer to
   write documents in a very basic text editor (such as for example, Microsoft Notepad,
   or an HTML textarea form component) and then convert the text into other display and
   storage, and exchange formats using some kind of stream editor or a program. The 
   transformation program recognises a set of simple 'structures' within the plain text,
   such as, for example, URLs beginning with a URL schema like http:// or nntp:// and
   terminated by a space character.

   Another feature of these 'minimal markup languages' is that the writer should be able
   to learn the basics of the format in a very short period of time, say, a few minutes.

   The term plain text markup language is possibly incorrect since mark-up seems to 
   imply the existance of 'tags' of some sort, which are not necessarily present in
   a minimal text format.

   My idea is that a plain text language should be a compromise between the need to 
   render or transform the text into a different format (such as for example, 
   docbook XML or HTML) and the need for the original text to be readable in its
   untransformed state. This is where, I believe, many of the 'wiki' languages fail.
   For example, the wiki idea of using mixed case words such as ThisIsAWikiLink to
   create links between pages, in my opinion, violates the idea that the original
   text should be readable in itself.

   Another idea is that the plain text structure should encourage the editor to 
   think about the document in a structured way, and to edit the document
   accordingly. For example, the writer should make an effort to decide in what
   section in a particular file or web-page her changes should be made or added.
   It is very common, when dealing with wiki systems, that the information becomes
   extremely disorganised.

   I do not agree with the idea (used in the 'apt' system) of using indenting to
   control section headings.

 INTERESTING MARKUP ELEMENTS 

   The apt structure uses <text> and <<text>> to render text as italic and bold

   The moin moin language uses backticks (`) to render text in a fixed pitch font
   or as a 'code listing' or something similar. I like this because it is readable
   and it also harks back to the unix idea of back-ticks being a 'system exec' call,
   which seems appropriate since this format is often used for 
   
 TEXT FORMATTING LANGUAGES 
 
   * mjbishop plain text markup-language |/utils/| 
     The web-site at http://www.ella-associates.org/alexis-info/docs/ has been created 
     using scripts which recognise basic plain text structures. 
     Features:
      attempts to preserve white-space in the HTML, by using nbsp elements and 
     <br> tags. Tries to guess what is a hyperlink. Uses all upper-case text lines as
     section headings. Contains structures for links to various versions of the same document
     in the situation, say, where there is a text, html, and pdf version of the same 
     document.

   The 'apt' (almost plain text markup language). This is to be found at
   http://www.xmlmind.com This minimal text language uses indenting to achieve formatting

     Features:
       Uses indenting to determine 'section headings'

   The markup structures used by the seq faq conversion script. Somebody called
   'Eric Pement' maintains an FAQ about the 'sed' stream editor, and old and venerable
   Unix program. He generates the HTML of the faq using a Perl script which recognises
   certain structures in the plain text of the FAQ. The output uses CSS and is reasonably
   pleasant to look at, in my opinion. 

    The moin moin wiki language.|http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/MoinMoin|
     This language is a variant of the normal wiki language
     In my opinion this system tends to suffer from 'link proliferation',
     since it is too simple to create a new link, which eventually interfers with the 
     readability of the document

     Here is the markup summary
     
     -->>
	Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; ''mixed
	'''bold''' and italics''; ---- horizontal rule.
	Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====;
	===== Title 5 =====.
	Lists: space and one of * bullets; 1., a., A., i., I. numbered items; 1.#n
	start numbering at n; space alone indents.
	Links: JoinCapitalizedWords; ["brackets and double quotes"]; url; [url];
	[url label].
	Tables: || cell text |||| cell text spanning two columns ||; no trailing
	white space allowed after tables or titles
     --<<

    With comments by me:
    
      Emphasis:
       ''italics''; '''bold'''; '''''bold italics'''''; ''mixed
       '''bold''' and italics'';
       Looks fairly horrible in the text file. I dont really think it is
       necessary to give the user control over italics and bold and such
       purely formatting things. If you give the user this sort of control
       then they start to think in a 'visual' or 'presentation' oriented way
       rather than thinking in an 'informational way. I believe it is
       important that the user remains focussed on the informational content
       of what they are writing. 
       
       ---- horizontal rule.
       Doesn't look that great in the text file, nor in the resulting HTML. 
       Is this really a good way to divide information?
       
      Headings: 
        Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
       This could be altered to just the leading equals sign. I think the
       leading and trailing = signs are ugly and unnecessary. 
       
      Lists:
       space and one of * bullets; 
       1., a., A., i., I. numbered items;
       1.#n start numbering at n; space alone indents.

       
      Links: 
       JoinCapitalizedWords; 
         I think this is very unreadable in the text file as well as in the
	 HTML. Big mistake. How about something like [*] linktext

       ["brackets and double quotes"];
       url; 
       [url];
       [url label].
       
      Tables: 
        || cell text 
	|||| cell text spanning two columns ||;
	no trailing white space allowed after tables or titles
         This is not a bad idea, but I think all those vertical bars in the
	 text file looks very bad in the text file. How about just start the
	 line with || but then use fixed width text columns to indicate the
	 table. This would at least look better but might present some 
	 parsing problems.

       
       Unformatted Blocks:
        {{{ and }}} to surround unformatted sections of text 
	 OK but ugly. I prefer my -->> and --<<
        ` (backticks) for inline unformatted sections
        This I like. It is simple and readable, but it will cause problems
	when displaying unix scriplets which contain these characters.





