Pwyky (A Python Wiki)

Pwyky is a ~30KB single file wiki in Python. It's very easy to install, requires minimal configuration, and uses a simple structured text format. It's free software: released under a GPL 2 licence. There's a fully functional version online for you to try.

Getting and Installing Pwyky

Requirements: Apache, and Python 2.3+.

To install:

Important: you must visit the path with the full file name the first time around, so that it can install itself. From then on, visiting http://yourserver.tld/directory/ will work. As soon as you visit it, it should be fully installed and ready to use!

About: Background, and Features

A wiki is a program, often a CGI, which enables you to edit a website using an HTML form. You can limit the editing priviliges to a single or group of users, or let anyone in the world edit it.

Pwyky was written by Sean B. Palmer, the same guy who wrote wypy, the 18-line Python wiki. After writing one of the world's smallest wikis, he decided to write a proper wiki.

The features that pwyky has are:

The requirements were:

One of the main features of a wiki that gives it its character is the nature of its structured text syntax...

The Syntax

Summary:

Example:

@ Heading

Paragraph.

* Bulleted list.
* Bullets can extend over
two lines.
* Third item in the list.

{{{
Preformattted area.
}}}

[[[
A quote
]]] - http://example.org/citation

Links: {LocalLink} will link to ./LocalLink, {Local Link} will 
link to the same, and {http://example.org/ example.org} will be a 
titled link to example.org.

Formatting: Hints and Tips

Generally:

In paragraphs, headings, and list items:

In preformatted sections, and blockquotes:

Configuration

Configuration is achieved through a config.txt in the pwyky folder; if the file isn't present, then pwyky will use its own defaults. The syntax is that of RFC 822 message headers; field name, colon, space, entry.

The config file needn't have all fields; you can just have the fields for which you want to override the defaults. For example:

sname: notes
lname: my notes
pedit: False
owner: <a href="http://example.org/person/">Person's Name</a>
logdir: /home/person/web

Other: Using Pwyky

You can use the following bookmarklet to edit your pages if you don't have public editing links enabled: javascript:void(location = document.location.href.replace(/\/([A-Za-z0-9-]+)$/, '/@edit/$1').replace(/\/$/, '/@edit/index'))

Feedback

Send comments to the author, Sean B. Palmer.

Sean B. Palmer