Collaborative book authoring with Booktype
Sourcefabric, the free-media-software project behind the Airtime radio broadcasting application (covered here last week), has also launched a new book authoring effort dubbed Booktype. At its heart, Booktype is a collaborative, web-based rich document editor, but it is designed to streamline the process of creating and publishing complete books — using the same text, regardless of whether the end result is exported for print, ebook readers, or the web. In addition to its editing and formatting capabilities, the software integrates tools to manage teams and communities around a book project, which may make it a better fit for documentation jobs and user communities than a generic content management system (CMS).
Booktype is the product of a collaboration itself. The code is an evolution of the Booki editing platform used to great success by FLOSS Manuals. Although FLOSS Manuals had been using Booki for its own documentation projects and book sprints for several years, the code had never been packaged and distributed as a general-purpose tool. The partnership with Sourcefabric was announced on February 14 by FLOSS Manuals founder Adam Hyde, and the new version of the code was unveiled at the O'Reilly Tools of Change For Publishing conference the same day.
The code is licensed under the AGPL version 3, and is written primarily in Django using PostgreSQL for storage. The source is hosted at Sourcefabric's Github repository, where the installation instructions list several other library dependencies. The most notable are Espri and Objavi, the content-import and rendering engines (respectively), developed for Booki. At the moment, neither is packaged for distribution, although there is an empty-at-present Objavi repository, and the code is accessible from the Booki repository. Instead of using installed versions of those components, the Booktype code links directly to FLOSS Manuals' hosted versions. However, the project does make both freely available for outside use, but until they are released as stand-alone packages, the hard-coded links will have to suffice.
The initial Booktype release is numbered 1.5, to reflect the code's Booki-era history. Sourcefabric's Adam Thomas said that the principle changes include an overhaul to the user interface, full localization, and the addition of non-ASCII character support in auxiliary functions (such as the Django slug creator). It is now possible to upload exported PDFs directly to a Lulu.com publishing-on-demand account, and to create EPUB and MOBI output tailored for Apple's iPad and Amazon's Kindle.
Anatomy of a book publishing job
![[Editing interface]](https://static.lwn.net/images/2012/booktype-edit-sm.png)
The application is web-based, geared towards drag-and-drop simplicity in the editor, although there are a handful of command-line tools for administering a Booktype server. Editing a text is similar to using Google Docs, PiratePad, or any other contemporary collaborative editor. The main editing window uses TinyMCE, the same WYSIWYG rich text editor widget found in WordPress, Joomla, Plone, and many other open source CMSes. Simultaneous editing by multiple users is supported, as is revision control and roll-back of earlier changes. The site advertises full Unicode support as well as support for bi-directional text.
What makes Booktype a "book publishing" system rather than a web editor is its support for long, multi-part documents, its output options, and its focus on a collaborative workflow. Every user must have an account on the Booktype server, and the creator of a new book is automatically its owner. The owner can keep the title private, or open it up to the public — either the world at large, or a specific group of users — and can optionally assign user roles to distinguish between authors, editors, and proofreaders. Editing a book requires creating one or more chapters, and each chapter is essentially treated as a separate document in the application.
![[Book view]](https://static.lwn.net/images/2012/booktype-chapters-sm.png)
The "book view" allows an editor to rearrange the chapters using drag-and-drop. Users can also break the book into named "sections" and move the chapters freely between them. Booktype keeps track of the order of the material, and when exporting the final product, automatically numbers the sections and chapters, adds page numbers if print output is created, and generates a table of contents. The changes to the book's structure are noted in the interface's History tab (which, like MediaWiki's, allows you to compare different revisions side-by-side).
Whenever a book is ready for publication, its owner can freeze a revision of the text, which gets tagged with a software-style Major.minor release number. Version numbers are strictly-increasing, however; there is no "undo." The project describes this feature as being useful for textbooks and other projects that need to produce updates where it is always clear which revision is the most recent. When the text is finalized, publishing is a matter of choosing the output format — the same text is used to generate print, web, and ebook output.
The publishing feature currently offers five formats: print-ready PDF, ebook (with iPad, Kindle, and generic EPUB options), screen-resolution PDF, LibreOffice ODT, and the aforementioned Lulu.com upload. Internally, book text is stored as HTML and styled with CSS. The export function uses WebKit with built-in CSS templates to convert the HTML to the other output formats. At the moment, there is not much documentation of the templates used or their options. The "Publish" tab walks you through several set-up screens where you can alter settings like font style, size, margins, and gutters, but without a preview. As the Booktype manual notes, you can enter custom CSS on the final screen under "Advanced Options," although this is not particularly user-friendly.
According to Hyde, the exporter supports all of WebKit's CSS features,
which mean only partial support for advanced
text formatting and font
features. However, he added, "what is most interesting is that
we can support CSS3 and JavaScript, There are some very nice JavaScript
typography libraries and we have been experimenting with the integration of
kerningjs. It's experimental but looks promising
".
Socializing
The "social dimension" of Booktype is its other distinguishing feature. It has been designed from the ground up to allow users to create their own book projects at will, and to contribute to each others' texts. That plays out in the ease with which one can start a new book, and with Booktype's ability to import chapters from public-domain works (such as the Internet Archive) and Creative Commons-licensed ebooks. The application also allows you to create groups in addition to isolated user accounts, and to assign editing rights to a group. User and group profile pages are minimal at the moment, but the feature is clearly intended to support large-scale group efforts akin to FLOSS Manuals' own contributor community.
In addition to the broader social networking designs, there are nice collaboration features built in to the application itself. During the writing and editing process, all changes are logged and are visible to other logged-in users on the same project in a sidebar next to the main editor pane, above a list of other users currently working on the same book. The automatically-logged changes include simple "User Nate has created new chapter 'Introduction'" and "User Nate has saved chapter 'Chapter 2'" messages, but collaborators can leave longer text notes for one another, or send chat messages through the sidebar if both are logged in at the same time.
Book owners and editors can flag chapters as "content needed," "review needed," or any other tag. This stops a little short of permitting a book owner to assign tasks to participants, but Booktype seems designed to fit ad-hoc groups of willing participants, rather than paid employees at a publishing house. FLOSS Manuals has certainly gotten significant mileage out of the volunteer-driven, casual workflow of Booki, which is an endorsement of the idea.
Coda
There are a few features discussed in the press release and project page that do not appear to be active in the live Booktype demo, such as publishing directly to Amazon.com or Apple iBooks, or output to static (i.e., non-Booktype) HTML. Coupled with the still-unpackaged status of the Espri and Objavi components, it is possible that the initial release of Booktype was not quite as ready as the project would have liked when the Tools of Change For Publishing event arrived.
Nevertheless, what is there is an easy-to-use collaboration platform suitable for writing-intensive tasks like documentation. FLOSS Manuals' output is of high quality for a number of reasons — including the skills and time contributed by its volunteers — but over the years the project's software has developed into something other communities ought to examine as well. Personally, I would much rather see software documentation written in Booktype than in MediaWiki, with its idiosyncratic syntax and the pages of empty outlines that inevitably result. The workflow tools in Booktype allow an editor to orchestrate a large volume of text with minimal effort, and the application takes care of the formatting automatically. Both features free writers to produce better writing.
Thomas and Hyde both said that work is already underway for the next revision of the code, which should include support for audio, video, and interactive elements. Until then, Booktype is ready to craft PDF, ebook, and print-on-demand output, which gives the rest of us plenty to read.
Index entries for this article | |
---|---|
GuestArticles | Willis, Nathan |