Paperboy WDM

Paperboy WDM is a simple, lightweight web development framework for running data-driven websites, without the complexities of SQL-based frameworks. By providing a simpler way to separate content, presentation, and logic, new developers can be introduced to the concepts of good design before making the leap from personal to public design. It primarily targets novice and non-enterprise designers, and is geared more to making websites than web applications, but it has many features that even seasoned developers will find useful.

The Paperboy RSS project is a simple but elegant RSS feed reader. Because of the XSLT-driven elegance, that project can easily be extended to other tasks including web development. Pbwdm is just such an extension. Pbwdm predominantly uses XSLT to manipulate content, and leverages Paperboy RSS to apply the transformations to XML, translating between the content layer and the presentation layer served by a server like Apache.

Titania

Titania is the main component of the Paperboy WDM Project. Titania can run in static mode iterating over an entire website to generate static pages, or it can run actively to generate requested pages on the fly. It can use any XML database format and can convert them to any text format, limited only by your ingenuity with XSLT.

Though titania is designed to work on XML to minimize the need to install tools like SQL databases—because their installation can be complex and thus preclude new developers—, some developers of larger sites may want to use such databases anyways. To accommodate these developers, once titania reaches a stable point, work will begin on oberon— a program for converting between SQL-based databases and XML, and between XPath queries and SQL queries.

Document Types

Powerful as titania is, without schemas for database types and templates to transform them into desired presentation forms, developers would have to create their own from scratch and wouldn't be able to benefit from the open source community. This is another hurtle that would turn aside would-be developers. So a portion of pbwdm is to design database types for common needs and to develop templates for them. These are the current types being worked on:

<blog>

This type is for weblogs, collections of entries ("posts", or "articles") released on a chronological basis. This could cover anything from online diaries, to website update logs, to electronic magazines, and could even be used for threaded comment logs on the above. Templates would turn this type into various news feeds (RSS 0.91, RSS 2.0, RDF/RSS 1.0, ATOM,...). Templates for XHTML may also be created, though these would need to be tailored for each user's site layout and so would be less useful. I'm presently looking for a new, less generic name for this type, and it is so far the most developed database type.

<page-set>

This type defines a collection of generic webpages. It is extremely flexible, but may not provide the structure necessary for less generic content. The primary medium for this type is XHTML.

<xdtd>

This type is for writing self-documenting definitions of XML types. It will draw heavily on XML Schemas (XSD) and SGML DocType Definitions (DTD), though mostly XSD. Output media would be: pure XSD, DTD, and XHTML. Again the XHTML would be highly site dependent, but given the complexity of this type, any starting point would be extremely helpful. So far this type is still in the "theoretical, but necessary" class, mostly for administering this site.