What it is ?

It's notorious that the current wiki parser from tikilib has reached its limits. (see WikiDev , WikiParser ...)
As Mose did a new HEAD after 1.9.0 release, the wiki parser from PEAR was incorporated as an experimental alternative by Justin Patrin.
This parser was originally released by P.M. Jones.


The hardest steps (decision and first implementation) are done ...
That's still experimental:

  • it's controlled by a default setting in Admin Wikis,
  • in Moreneat, a link is provided in top of the pages to easily switch old/new parser for rendering comparison.

As of August 2005, the Tikiwiki parser and the Xhtml renderer as been bundled in HEAD CVS so you don't need to install pear::Wiki_Text anymore. (toggg)

The next step is some ants' work, reproduce with the most accuracy possible our old grandmother tikilib:
The rules are only roughly derived from the default ones, now we need to test them one by one for all possible cases, decrypting what tikilib does to get them work identically.
Keep in mind that the rendering uses much more ))XHtml(( and Css so identical is not direct biggrin

When, and only when we achieve that, it will be a pleasure to remove a few 1000 lines from tikilib and think of a rationalization/extension of our rules.

How it works

For the details please see Text_Wiki documentation
Globally the parsing and the rendering of the wiki are independants, parser produce a tokenized form of the wiki what renderer transform in a usable media.
This common tokenized form may be produced for different sets of rules reproducing different wiki idioms and not only the default one. Our current work is to fully implement Tikiwiki's rules but inital coWiki and DokuWiki parsers are also done. A BBCode parser is also available and a Mediawiki started since August 2005
On the output different renderers can be used: ))XHtml((, plain, but also Latex and in development Pdf and OOo. It is also possible to convert to other wiki syntaxes. DokuWiki, coWiki, and TikiWiki renderers have been done but may not be complete.

The parser's rules

The parsing is divided in rules, each of them being an independant class (small is beautiful):

  • anchor
  • blockquote
  • break
  • center
  • code
  • colortext
  • deflist
  • delimiter
  • embed
  • emphasis
  • freelink
  • heading
  • horiz
  • html
  • image
  • include
  • interwiki
  • list
  • newline
  • paragraph
  • phplookup
  • prefilter
  • raw
  • revise
  • strong
  • superscript
  • table
  • tighten
  • toc
  • translatehtml
  • tt
  • url
  • wikilink

Not all of them have a corresponding syntax in TikiWiki, but we have introduced other rules we need:

  • page
  • plugin
  • preformatted
  • specialchar
  • titlebar
  • underline

Caution, as for August 2005, there were some changes made to the Toc, and WikiLink renderers to allow more flexibility. These changes are specific to our Xhtml renderer and could not yet be backported in PEAR.

Created by: Last Modification: Wednesday 20 July 2011 14:13:10 GMT-0000 by Oliver Hertel
List Slides