An overview of Zwiki features and code. This aims to answer questions like -

  • what exactly does Zwiki do ?
  • how/where in the the code is it done ?
  • how could the Zwiki code be made smaller/clearer/more focussed ?
  • what would be involved in porting Zwiki ?

Needs an update. See also APIDocs.

BASIC
WIKI
ADVANCED
WIKI
MAIL ISSUE
TRACKING
OTHER

SOURCE FILES

ZWikiPage.py

CatalogAwareness?.py

Defaults.py

Regexps.py

UI.py

ZWikiPage.py

Diff.py

Parents.py

Regulations.py

UI.py

Mail.py

Messages.py

mailin.py

Tracker.py

Fit.py

PurpleNumbers.py

wikipage.pt

editform.pt

backlinks.pt

contentspage.pt

diffform.pt

subscribeform.pt

 

 

FrontPage.stx

SearchPage?.stxdtml RecentChanges?.stxdtml

HelpPage.stx

ZWiki.stx

UserOptions?.stxdtml

(AllPages)

 

IssueTracker.stxdtml

FilterIssues.stxdtml

 

BASIC WIKI FEATURES

serve pages
Serve up pages of content (text, images, html etc.) to the web.

page editing
Allow pages to be edited on the spot in an ordinary web browser. See
HelpPage.

text formatting
Apply simple markup rules so that text is formatted without the need for HTML. See
TextFormattingRules.

wiki linking
Automatically hyperlink references to other wiki pages. See
HelpPage.

backlinks
List all the pages in the wiki which link to this one. See
BackLinks.

search
Search all the pages in the wiki. See SearchPage
?.

recent changes
List the most recently changed pages in the wiki. See RecentChanges
?.

ADVANCED WIKI FEATURES

page hierarchy
Pages can be arranged in a hierarchy to help organize information. See
HelpPage, contents .

flexible markup
Zwiki supports several kinds of text markup, including:
StructuredText, RestructuredText, WikiWikiWebMarkup, etc and support for others can be added quite easily. See TextFormattingRules, ZWikiPage.py render_* methods and page type definitions, Defaults.py allowed types definition.

edit history
Zwiki allows browsing of past edits and viewing and restoring past versions of a page (since the last zope database pack).

access control
By virtue of Zope's security system, you can allow or deny viewing, changing, commenting on pages, uploading files etc on a per-user or per-role basis, per-page or per-wiki, etc.

file upload
A simple file upload mechanism allows files to be stored in a wiki. Files are automatically linked on the page and images are displayed.

user options
The UserOptions
? page allows a user name, time zone, and various other user preferences to be saved as cookies. Zwiki's default skin offers three levels of UI complexity.

external editing
When the
ExternalEditor zope product is installed on the server, and you have installed a small python helper app, you can edit pages with the application of your choice by clicking on the pencil icon.

skin templates
Administrators can fully customize a wiki's appearance by modifying zope page templates with a text editor or web page editor. Skins created in this way may easily be re-used (perhaps acquired, affecting multiple wikis) and exchanged. In CMF or Plone sites, multiple skins may be offered for a user to choose from.

dynamic content
Zope's Document Template Markup Language (DTML) can optionally be enabled in wiki pages, allowing dynamic wiki features, rapid interactive development of server-side web apps, etc. Zope's security machinery can be configured to limit the risks of anonymous executable content. Examples: RecentChanges
?, SearchPage?, IssueTracker, EditMembers?, FAQ. See README, SecurityDiscussion.

MAIL FEATURES

send mail to subscribers
Users can quickly subscribe to individual pages or a whole wiki to receive comments (or edits) by email. See
WikiMail, Mail.py.

accept mail-in
Comments can be sent to a page by email. See
WikiMail, Mail.py.

format mail messages
Messages in RFC2822/mbox format will be formatted for web display (in development). See Messages.py.

ISSUE TRACKING FEATURES

issue pages
Pages can represent bugs/issues with colour coding & other issue properties. See
IssueTracker, Tracker.py.

issue filtering, search, browse
Issues can be filtered, searched etc. See
IssueTracker, FilterIssues.

OTHER FEATURES

fit tests
Support for the Framework for Interactive Testing - define and run automated tests of other software using special data tables. See
ZwikiAndFit, Fit.py.

purple numbers
Support for
PurpleNumbers (fine-grained linking).

integratability
Being hosted on the Zope platform makes it easy to leverage Zope's many other products, database integration, etc.

manageability
Zwiki benefits from Zope's manageability. For example:

scalability
Ditto for scalability. Zwiki benefits from Zope's transactions, threads, caching, ZEO, etc.