Login
Quick Search
showWiki Markup Help
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

Main Page

by blogadmin at 29-10-2008 19:03; Wiki ID: main_page

Main page test.

AtomicWiki Features

by editor at 11-3-2008 21:24; Wiki ID: AtomicWikiFeatures

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

by wolf at 21-10-2007 22:23; Wiki ID: Installation

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

http://localhost:8000/

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.

Links
Latest Posts
AtomicWiki 0.5