View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

The Architecture

To Edit Addresses, Templates, Actions, etc.

  1. Start the server (using the ComSwiki Launcher)
  2. Bring up the window menu for the SwikiBrowser
    • This is done by pressing the icon next to the X button
  3. Select 'open swiki browser...'
Updates made in the SwikiBrowser will take immediate effect.

Addresses

  • addresses are smalltalk blocks
  • for instance, swiki/4.edit has an 'edit' address
  • request, response, shelf, book and page are sent to the 'edit' page address and what returns is the page content (a string)
  • addresses are compiled and loaded into memory at startup

Templates

  • templates are the HTML files which are used by the addresses to display information
  • for instance, the default template (for viewing) is 'view' (page since it is only to be used for pages)
  • templates call actions by having the name of the action surrounded by '<?' and '?>'
    • for instance, '<?bookName?>' maps to '(book pages at: 1) showName'
    • a book template can only call book actions
    • a page template can call both book and page actions
  • templates are loaded into memory at startup

Actions

  • actions are smalltalk blocks called by templates to add functionality
  • a book action receives request, response, shelf and book
  • a page action receives request, response, shelf, book and page
  • actions are compiled and loaded into memory at startup

Setup

  • the 'setup.xml' file contains the information that the shelf will need to know to initialize that specific book.
  • setup is not inherited

Settings

  • the 'settings.xml' file contains the static objects that the Swiki will need to run, such as formatter, color scheme, file locations, etc.
  • these settings are compiled and loaded into memory at startup
  • settings are inherited

Shelf

  • the shelf is the place where the requests come in. The shelf decides whether the request should be processed by a book or by itself.

Books

  • the book holds the pages.
  • the settings for the book are values it uses during processing and can be altered.
  • the modules are things that are created at run time (usually through the initialize priv address) and are not stored.

Pages

  • the pages are processed at startup (text and old versions are not loaded into memory for memory conservation)
  • do NOT edit pages manually while the server is running since this can cause serious problems