Over the last 2 weeks, I made some modifications to the existing wiki package to support a mediawiki-like syntax. This is literally a day late and probably a few dollars short in comparison to Gustaf's XoWiki package, mentioned in this post. I haven't played extensively with XoWiki or browsed through the code in detail, but the demo looks amazing. Thanks Gustaf! That said, I think that some of the changes I made to the wiki package might be worth merging/integrating into XoWiki.
I setup a live demo of the modified wiki package. A brief overview of the support for mediawiki markup is outlined on that page.
I really like the way Gustaf implemented the ability to do adp includes, and also the markup syntax for using divs with the >>name<< delimiters. It also seems as though XoWiki has the potential to deal with "type_links" or "namespaces" (the mediawiki term), but doesn't do anything specific with the link_type information at the moment.
One way to use the link_type information is for rendering a certain type of content, such as an image. This is how the mediawiki [[Image:name|options]] namespace works. You type in something that tells the system to replace it with an image, <name>, using the appropriate display <options>. Alternatively, this information could be used to execute an action or create a relationship, such as adding an article to a Category (i.e. [[Category:OpenACS]] would add the page to the OpenACS category). As far as I can tell, mediawiki uses the Category namespace to categorize articles. They also use language namespaces to render content in foreign languages.
As an example, I implemented a "Photo" namespace/link_type for the wiki package that will display a specified photo in the photo-album. The major advantage of this approach is that users can include images safely without using IMG tag. However, this approach is limited to images stored in the system (inside an instance of the photo-album in this case).
You can read more about how this works on the demo page mentioned above. Ultimately, this code ends up calling template::adp_include to generate HTML for displaying the photo, but I'm not clear as to whether there is a better approach. Specifically, I wasn't sure if cr_items store information about how to display themselves.
I'm still fairly new to OpenACS, although I've been silently lurking on the forums (on and off) for awhile, and trying to understand how to build apps with the api. I'm a scientist by training, and I play with OpenACS in my free time, which there never seems to be enough of these days. Based on my limited exposure, it seems like it would be better to extend XoWiki, rather than continue to use the wiki package. If any of the above makes sense, and seem like good ideas, I'm volunteering to help implement them in XoWiki. Either way, I'd appreciate thoughts and feedback from the community. Thanks.