logo rapple website generator

rapple overview

rapple is a tool for creating websites. it converts HTML sources into XHTML, an XML variant of HTML, and then transforms these using an XSLT stylesheet to produce the final website. the advantage to generating a website in this manner is that it exhibits a high degree of consistency by conforming to established web standards (as defined by bodies such as the W3C). as a bonus the transformation to XHTML makes content amenable to additional parsing services (e.g., link checking, creation of digests and generation of feeds etc.) rapple processes CSS files and binary resources (e.g., images, PDF documents etc.) by simply copying them to the appropriate location in the generated website. although often used as a command line utility rapple also comes with a HTTP module that supports a web based interface.

central to rapple is the notion of separation of content from presentation. content is what the website author writes (using a text editor, word processor etc.) and concerns purely the message that is to be conveyed. presentation concerns layout (e.g., headers, footers, logos etc.) and style (colours, fonts etc.) and is covered by a site XSLT and perhaps CSS stylesheets. the website author is therefore responsible for maintaining his/her HTML sources (usually in a directory tree that represents the website) along with an XSLT and perhaps a CSS.

rapple needs to know where the site sources are and where the final website is to be built (these can be specified either as command line options or in a configuration file). during processing rapple also creates a datastore that it uses to store by-products (these can sometimes be useful for tracking down problems with the original sources.) each time changes are made to the original sources (or to the site XSLT/CSS) the website (and datastore) should be re-generated. rapple supports the iterative process of applying changes, regenerating and testing a website by implementing the necessary infrastructure, processing the site and logging issues. once testing is complete a production website may be generated and deployed.

in addition to simply applying a house style to source files rapple also performs other functions. for example rapple has a feature called "indexing" where it can read the contents of a directory and generate an index file from extracts of each of the source files it finds in the directory. rapple can also perform other interesting tasks such as context highlighting, storage of meta data in a MySQL table and checking links of completed websites.

although content management services are out of scope for rapple, it does support storage of metadata in a relational database (MySQL) and the use of an embedded datastore is included in the rapple development roadmap. these measures could enable the layering of content management services on top of rapple should this need arise.

rapple was started as an open source project by Alan Moran and acknowledges the help of its developers and contributions the project is based on technologies that are firmly rooted in the internet community (XHTML, XSLT, CSS etc.) and builds on established open source libraries (tidy, expat, etc.). rapple is developed for Linux/*BSD platforms but there might be plans to support other platforms (e.g., Windows) at a later date.

powered by rapple SourceForge.net Logo Valid XHTML 1.0! Valid CSS!