AtomicWiki Features
Everything is a Feed
AtomicWiki is entirely based on Atom and stores all data as Atom feeds or rather: as a hierarchy of feeds. A feed consists of zero or more entries. The page you are currently reading is an Atom feed. Every comment thread is a feed below the current feed. All wiki pages are stored and edited as feeds as well.
XQuery+XSLT+AJAX
The entire system is implemented in XQuery and XSLT with the help of some Javascript for the AJAX goodies (like in-page comment editing). Only 1 additional XQuery function has been implemented in Java: the one for parsing a string of wiki markup into XML.
Direct Access to Database Features
Since all wiki contents are stored as Atom feeds in the database, you can directly edit the XML feeds if you need to, e.g. with a WebDAV-enabled XML editor. The whole database can be backed up as XML, using eXist's backup/restore facilities.
To put it simple, AtomicWiki is just another web frontend to the XML database. Thanks to the XQuery scripting features, you can easily query all your data from within a wiki page!
Powerful Wiki Markup
While WYSIWYG HTML editors are nice to get started, the simplicity and power of wiki markup is something we don't want to miss. AtomicWiki uses WikiModel as a wiki syntax parser. This parser is highly customizable and supports multiple syntaxes, from which we chose the most generic syntax, called "common wiki".
Extensibility: XQuery Scripting
Since the wiki markup is parsed by an XQuery script, why not use XQuery for macros or inline code? For example, the call to the code macro:
is forwarded to an XQuery function:
Extensions like image() are implemented in the same way. The XQuery function even has access to the HTTP request and thus to the HTTP parameters passed from the client.
The mapping between macro name and XQuery function is defined in the global configuration file:
This registers the XQuery module wiki.xqm as the default module for looking up macros and extensions. More modules can be added any time.
It is also possible to directly embed XQuery code into a wiki or blog entry using the script macro. Alternatively, you can keep the XQuery code in an extra document and put a reference to it into the content element of the Atom entry:
The "Latest Posts" box at the left is created in this way.
- 1 Comments
- Add Comment