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.
|