Welcome to Xierpa. This is the stable 1.2 version which was developed by Petr van Blokland + Claudia Mens (buro@petr.com) and is maintained by Michiel Kauw-A-Tjoe. It is subclassed by the Museum Meermanno and American Express applications.

How to...

...build a site

Starting a new website it is best to choose one of the high level builder classes and inherit the new application class from it.
from xpyth.xierpa.builders.sitebuilder import SiteBuilder
class MyApp(CmsAjaxBuilder:
	pass
This makes a complete - empty – application that show the warning line [self.buildcontent] To be redefined in an application class. to indicate that the application is running OK, but needs redefinition of the method called buildcontent.
By adding this method as
	def buildcontent(self):
		self.text('Hello world')
the builder class is satisfied, and shows a page that contains the single line Hello world. Note that actually a complete xHTML with encodeing UTF-8 was generated, as is shown by the source page of the browser.

Some of the available application builders
SiteBuilder ...
CmsBuilder ...
CmsAjaxBuilder ...
XierpaLiteBuilder ...
GoogleAppsBuilder ...

Since we did choose to inherit from SiteBuilder we got the simplest site possible. If we choose from a higher level builder class, such as CmsAjaxBuilder (that generates most of an CMS-Ajax application) much more default behaviour is filled in.
from xpyth.xierpa.builders.cmsajaxbuilder import CmsAjaxBuilder
class MyApp(CmsAjaxBuilder:
	pass
Now the application does not show a warning but implements the basics of an editor that works with Ajax on top of the site layout: instead of redrawing the whole page after each user action, only the parts (typically <div> tags) that suscribed to specific events get updated.
The applications draws a table based grid layout and calls methods to fill the cells. Each of these methods can be redefined by the inheriting application class.