The PEAK Developers' Center   WikiUp UserPreferences
HelpContents Search Diffs Info Edit Subscribe XML Print View

Updating Project Wiki Pages from Docs using WikiUp

NEW in 1.1:
The --changed-file or -f option now lets you specify a single file to upload. (See Command-Line Usage below for details.)

The WikiUp project defines a setuptools extension to allow uploading Wiki pages from source documentation. It's primarily intended to be useful for PEAK projects to update the PEAK Wiki, but other projects could make use of the same basic framework.

Installing this project adds a wikiup command to setuptools-based packages. By default, this command will read a file called wikiup.cfg in the project directory containing content like this:

pagename = filename

In other words, a file with a section for each wiki, and a pagename + filename on each line. (The filename is actually optional; if you just list a pagename without an =, the filename will be assumed to be the same as the page name.) Filenames must be relative to the setup directory, and use / as a separator, as they will be converted to an OS path using the distutils convert_path() function.

To configure a Wiki, you need to add it to a distutils config file (usually your $HOME/pydistutils.cfg or ~/.pydistutils.cfg file) like so:

url = base url here
type = plugin name here
... other settings, if any

In other words, for each wiki, you need a [wikiup-foo] section, where foo is the name of the wiki as it will appear in some project's wikiup.cfg file.

The url is the Wiki's base URL, and type is the name of the plugin to be used to do the uploading. Currently, the only supported value for type is OldMoin, which works with the old MoinMoin wiki used by the PEAK projects.

Command-Line Usage

The wikiup command optionally takes a --comment or -c option to specify an update comment to apply when editing. It can also be given --config-file or -C to specify an alternate config file in place of the local wikiup.cfg file.

Also, if you have many wiki pages, you can specify just a single filename to update, using --changed-file or -f. The file will be uploaded to all the matching pages in the project's wikiup.cfg. (Note: this option is case-sensitive and must exactly match one or more filenames in wikiup.cfg, or nothing will be uploaded.)

The OldMoin Plugin

The OldMoin plugin takes two optional arguments in its configuration section, in addition to the required type and url:


type = OldMoin
url = something

uid =
page_format = {{{ %s }}}

The uid allows you to specify a MoinMoin login ID to use; if specified, the plugin will use the userform Wiki action to log in as that ID before uploading any pages.

The page_format is a format string (defaulting to "#format rst\n%s") that will be used to convert the raw upload file into the page text that will be posted to the wiki. The string is interpreted using the string_escape codec, so you will need to double-up on backslashes to keep them from being treated as character escapes.

Adding Plugins

You can implement alternative plugins for other wiki types, by subclassing wikiup.Wiki and registering the resulting class in the wikiup.plugins entry point group. See the source code for details of what the plugin must be able to do.


Questions, comments, and bug reports for this package should be directed to the PEAK mailing list.

EditText of this page (last modified 2010-08-11 19:36:50)
FindPage by browsing, title search , text search or an index
Or try one of these actions: AttachFile, DeletePage, LikePages, LocalSiteMap, SpellCheck