ePUB Output for Pier Books

Mentor: Nick Ager
Second mentor: Lukas Renggli
Level: Intermediate
Invited students:
Students interested: Saurav Bhattacharya, Jan Kricka


Pier 1,2 is an /extensible/ object-oriented content management system that includes a book authoring engine. The book authoring engine has been used to document a number of Smalltalk based projects, most notable Seaside 3 as well as Moose 4 and Pharo 5.

The goal of this project is add ePUB 6 as an output format to Pier enabling existing and future Pier books and other Pier content to be output in a format readable by popular eReaders.

1 http://www.piercms.com/
2 http://code.google.com/p/pier/
3 http://book.seaside.st/
4 http://www.themoosebook.org/
5 http://book.pharo-project.org/
6 http://en.wikipedia.org/wiki/EPUB

Technical Details

Content in Pier is parsed into a document tree that supports the visitor pattern 7 for traversing the internal representation. Pier currently supports a number of output formats such as HTML, plain text, RSS, wiki
text. These formats are generated by visitors. The existing visitors would act as a template for creation of an ePUB visitor which would generate ePUB compatible output.
7 http://en.wikipedia.org/wiki/Visitor_pattern

Benefits to the Student

The project is well defined with a clear deliverable. The student will gain an understanding of the internals of a powerful, well structured content management system as well as the satisfaction of having a set of
artefacts in the format of the existing Pier book content translated into ePUB format.

Benefits to the Community

The Smalltalk community and others using the Pier book authoring engine will gain ePUB as an output format. With an ebook output format authors have a potential new revenue source, encouraging a virtuous cycle of
increasing documentation within and outside the community.

Updated: 18.3.2012