Home

Sakai Wiki Tool

Overview

The Wiki tool is a fully integrated Sakai Tool that enables users of Sakai to create content, share and manage in a Wiki Environment. It uses simular markup to this Wiki (confluence) and others (SnipSnap) and shared concepts with other open source Wikis (eg Wikipedia, TWiki, phpWiki etc). Where fucntionality is provided by other tools within Sakai, the wiki deligates responsibility to those tools (eg resources).

The tool is added to worksites, just like any other tool. Once added a Wiki space dedicated to that worksite is created with a number of default pages. Members of the worksite may edit the content and create new pages simply by placing Wiki links on the existing pages.

Additional functionality includes

  • Linking between worksite spaces
  • Adding content from the Resources tool (eg images)
  • Creating subspaces within worksite spaces
  • Controlling permissions
  • Exporting content in various formats (eg pdf, rtf)
  • Watching for notifications (eg rss and/or email)

For a more detailed description of the Wiki tool please follow the Further Information links listed below

Further Information

User Documentation

Developer Documentation

Use Cases
Functional Specification
Software Requirements
Design Documents
Development Blog

Old Information

Sakai Wiki Tool

The Project site can be found at http://saffron.caret.cam.ac.uk/projects/sakai-rwiki/

note: This site is rebuilt by Gump from our cvs head at 0400 GMT everyday.

Releases

Currently at RC1 for Sakai 2.x

For the moment, releases are RWiki Releases

Overview

Sakai Wiki Tool is intended to support Wiki functionality within Sakai, tightly integrated with Sakai services. This page is not talking about this Wiki (eg Sakaipedia)

Use Cases

We have a list of Sakai Wiki Tool Use Cases that have informed this tool, please add to this list if you want to influence how it works.

Status

Sakai 2.0

Source code is available in svn https://saffron.caret.cam.ac.uk/svn/projects/rwiki see http://saffron.caret.cam.ac.uk for information on how to get access to the repository. From time to time there will also be source code releases at http://saffron.caret.cam.ac.uk/downloads/

Sakai 1.5

A prototype version is available for Sakai 1.5 at cvs://cvs.sakaiproject.org/contrib/RWiki.
Their is also another wiki tool cvs://cvs.sakaiproject.org/XWiki which is a port of the XWiki wiki. This XWiki tool is not under active development (see below for more information)

Neither of these versions should be considered production ready.

RWiki tool.

The RWiki tool contains a Wiki Rendering Service and an Wiki Tool. The Wiki Rendering Sevice is a Spring component that may be used by other tools to render wiki markup into fragments of html. The Wiki Tool uses this service to render its wiki markup.

Wiki Rendering Service

The Wiki Rendering service uses the Radeox wiki engine to deliver Wiki Rendering. It uses the Radeox engine and hence has the same markup as mainstream wiki tool like SnipSnap. It has been implemented in such a way as to allow and Radeox based wiki macro to be used. (eg Radeox RSS Aggregator)

Wiki Tool

The Wiki tool integrates tightly with User, Site, Realm and resources services in Sakai 1.5.

User

It uses User service to determine the current user for page ownership.

Realm

It uses Realm for permissions within the current site.

Site

It uses site to create a default wiki space into which a user adds pages.

Resources

It may reference resources within resources too for inclusion into wiki pages ( eg images )

Features italic means future bold means new

  • Wiki Markup
    • Radeox wiki markup (as in SnipSnap)
    • Radeox Macros ( eg image, rss etc) extensible
  • Sakai integration
    • knows about user, realm and site.
    • will access sakai resources
  • Spaces, like Snips in SnipSnap
    • automatic default space is created named by SiteID
    • all pages with no specific space id, are assumed to be in the same space as the parent page
    • Subspaces may be generated
    • Cross worksite spaces may be generated
    • pages may be shared between worksites.
  • Permissions
    • Space persmissions derived from Site Realms and Roles.
    • Addition per page permissions on each page.
    • Allows complete public anon view of pages if selected.
  • Sakai Tool integration
    • Resources may be included into pages (images are rendered)
    • Rendered output of any tool in work site ( to be implemented)
  • Page Versioning and History
    • Wiki pages get versioned automatically.
    • There are pages to allow one to view the history of edits to a page and differences between them
    • Page Differences are displayed as colourised diffs
    • There should be mechanisms in place to inform editors if they are about to overwrite unseen changes. Full optimistic locking with long lived editing sessions.
  • Wikipage navigation
    • Current tool generates breadcrumbs as a stack of pages you have recently seen. A page can only appear once in this list, and hence if you go back to a previous page it is removed from the list and re-inserted at the end.
    • Breadcrumbs contain links to previous searches.
    • Searches are performed on page name and on full-text search.
    • Searches should be restricted to only pages that you can see.
  • Maths Support
    • There is a Maths macro that allows you to enter Tex. A plugin java script library renders the Tex in the browser on view.

Future Features

  • Comment Support
    • We would like to scope the requirements for adding comment support. There are several issues to be resolved:
      • What sort of permission structure should be added?
      • Do we want comments on comments?
      • Any other thoughts?

Enhancements and future bug-fixes

  • Improving the performance of History
    • In our current model we use an attached List of RWikiHistoryObjects for storing the history of a page.
    • This link is currently a hard-link and thus when the number of revisions gets large there will be a definite slow down in performance.
    • There are two options to solve this problem:
      1. Use Lazy Initialization and inherit all of the difficulties associated with that
      2. Separate the link, and break ORM.