Changes 0.5.2


Incremental Page Update

Pages, when edited, are now being updated using so-called "diffs". With diffs, only the text that has changed from one version to another will be saved. This saves a lot of disk space on the long run, especially when you deal with long documents.

The configuration option max_diff_level indicates the maximum diff level that is to be created before generating a full update instead of just a diff for the sake of security. Think of it as the maximum level of an incremental backup in the context of data storage. Larger numbers, i. e. higher maximum levels, result in smaller database files, but subsequent updates and administrative functions will take longer to execute, because full versions have to be derived from the diffs during run-time. A value of '0' or 'false' will disable incremental updates completely, writing only full verbatim versions of page contents. This results in a behaviour that is compatible with pre-0.5.2 versions of Pie.

Generic Caching Sub System

The caching sub system has been completely rewritten to permit a more generic use of the underlying caching facilities. All kinds of actions that need or suggest data to be cached can now create cache files of generic data to be used over subsequent HTTP requests or even to be shared among multiple users and sessions. The most prominent applications are the page cache and the image scaling cache used for thumbnail images. Both are but two of many operations that use the caching sub system.

The configuration option query_caching indicates whether the result of certain time consuming user requests is supposed to be cached. Note that operations may, but do not have to abide to this suggestion. Using cache files may speed up the execution of complex operations, but takes up disk space to store data. Programmers must take great care to uphold the validity of the content of cache files, since caches do not automatically change along with their original data sources.


Partial Updates

When working in editing mode, you can track down and edit specific sections only instead of the editing the whole of a page. While editing, only the selected section as well as subsections of lower levels are being displayed. The rest of the content is folded off and re-applied once you perform an update or preview.

Display of Diffs

This operation displays detailed comparisons of changes between any two versions of a page.

No More Overwriting

While editing, you might notice the absence of the Create new version switch. This is intensional. Each update does now explicitly create a version of its own that can not be overwritten, unless you delete the page as a whole.


The purge action replaces the former refresh action. Unlike the latter, the purge operation does not rebuild the cache of a page, but purges it instead. Whether the cache is rebuilt depends on the setting of the configuration option page_caching that, when enables, rebuilds the cache as soon as the page is requested. Administrators can use the action to clear the entire page cache instead of just the cache of a single page.


Pattern Recognition

The pattern recognition parser used to detect and process patterns embedded into pages, such as e-mail addresses, received a minor upgrade.

Anchor links

Headers do now automatically come with anchors that can be referred to from anywhere on the same page by a special anchor link called "#=", followed by the name of the referred header. If, for instance, you created a header via

=== Gory Details
you'd create a link to this header via [[#=Gory Details]]. Note that the header level, i. e. the number of equal signs used to create the header, is not taken into account when referring to it, but the spelling and case of its characters is. Thus, two headers in two different places, with or without the same level, like
= Gory Details
== Gory Details
will yield the same anchor link, but
= Gory Details
= Gory details
(note the spelling) will not. The idea is to make it convenient for you to create links to specific sections without having to place [anchor:] commands along with each header, respectively.

Editing Operator Changes

Footnotes are now evoked via the [^]-operator. [&] Does not work any longer.

The [-]-operator is now used to strike out character strings to negate the meaning of phrases. This behaviour replaces the former semantics to render small characters. The counterpart, [+], is likewise not used any longer to render big characters.


Thumbnails, i. e. small versions of graphics, should now be inserted into the text via the [figure:] command. The [preview:] command still works, but is deprecated.

You can also insert text figures into your text. This is done via [begin:figure]...[end:figure], and encloses any amount of text or content.


Last but not least, the setup process has now been made a part of the software library instead of employing external scripts, the latter of which would have to be removed after being used. To install and set up Pie you just enter the URL

This works out of the box for stock installations. For updates and reinstallations, use the Enable system upgrade operation in the System Maintenance/Administration menu. For running installations, you have to enable upgrades this way to prevent set ups from being performed accidentally, or, worse, intentionally by attackers from the Net.

Pie powered