| Feed Contents | |||
|---|---|---|---|
| Main Page | by blogadmin | 29-10-2008 19:03 | |
| AtomicWiki Features | by editor | 10-11-2007 14:29 | |
| Installation and Setup | by wolf | 25-10-2008 12:15 | |
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.
Installation and Setup
Note
The 0.4 release is a bit outdated right now, so you should consider building AtomicWiki from source. The current SVN trunk should be pretty stable. I will upload a new release soon.
Installing the .war Distribution
The .war distribution can be easily deployed into an existing servlet engine like Tomcat or Jetty. The distribution already contains a prepared database, so no additional configuration is required.
After installation, you can log in with the default user: editor, password: atom.
Building from Source
Check out AtomicWiki
The source code for AtomicWiki is available from its home at google code and can be checked out from the command line as follows:
svn checkout http://atomicwiki.googlecode.com/svn/trunk/AtomicWiki AtomicWiki
or use your favourite SVN client.
Prerequisites
AtomicWiki requires a recent build of eXist, at least version 1.3. Since 1.3 has not been release yet, you have to check out the sources from SVN trunk.
You need to compile eXist first.
Back in AtomicWiki, edit build.properties and change exist.home to point to your eXist installation directory.
Building
Call build.sh or build.bat in the AtomicWiki directory with the setup target, e.g.:
C:SourceAtomicWiki>build.bat setup
The setup process includes 3 steps:
- copy necessary jars from the eXist installation into the local directories
- build a few extra Java classes needed by the wiki
- initialize the database with default content and upload the required configuration data
Start the Server
Call startup.bat or startup.sh to launch the included web server.
If everything worked correct, you should be able to browse to
Generating a .war Archive
Calling ant with target "war" creates a file atomic.war in the root directory. This can be deployed into an external servlet engine like e.g. tomcat.
Other Settings
The file configuration.xml specifies a number of settings which are required for the wiki to run properly. The document is read from the database collection /db/atom and can be edited there, though this should not be necessary on a default installation.
The admin user and password are copied from build.properties. AtomicWiki needs this user for administrative tasks. If you change the user's password, you should also update configuration.xml accordingly.