On Wed, Aug 01, 2007 at 10:36:49PM +0800, Ping Yeh wrote:
Yes I'm working on a wiki "engine" with replaceable parts. The replaceable parts include parser (wiki text -> document tree in memory), formatter (document tree -> output text), storage system, authenticator, authorizer, and search engine. User interface is not in it, but rather the whole engine is driven by a UI to be supplied by the developer.
You can think of this "engine" as a "wiki library" that have pre-defined interfaces to replaceable parts. So, with an html formatter and a mediawiki parser (a draft version already exist), it can already show HTML for mediawiki contents. Furthermore, if parsers and formatters of markup A and B are available, we can freely convert wiki contents from A to B and vice versa. The "intermediate" thing is actually the document tree in memory.
The whole thing is written in C++. With help from wrapper generators like SWIG, it is possible to be called by many scripting languages supported by SWIG (PHP, Python, Ruby, Tcl, Lua, Java, C#, to name a few). I haven't got around to doing this just yet, but I did similar work with other systems before so this should be doable.
Oooooh! Phase 4!
:-)
Cheers, -- jr 'will rouse rabble for food' a