Booki User Guide


To understand Booki in more detail lets look at its principle features. The following is a brief description of the main features and some information on the progress so far. The list is not exhaustive and we invite brainstorming on features at anytime (although we want to remain focused on achievable milestones).

partially implemented
One of the most powerful features of Booki is the ability to easily copy and reuse content. Booki will use GIT as the versioning repository for the content. This means we can easily fork books into new versions for reusing, rewriting, translation, or recontextualising the content. Changes can be merged upstream if desired. At the moment versioning is supported but not by GIT. Instead versions as flags set in the database and this is manipulated via the Booki python code.

Book Formatted PDF Output
implemented (Objavi) --
The server side creation of Book Formatted PDF is a pivotal feature of Booki. Booki creates book formatted PDF using the Webkit PDF rendering engine. With Booki if you want to update a book, you edit it in the browser and create another print ready PDF in a matter of minutes. Furthermore, the book formatted PDF supports Unicode, bi-directional text, and reverse binding for printing right-to-left texts on a left-to-right press and vice versa. The formatting engine will output customisable sizes including split column PDF suitable for printing on large scale newsprint.

CSS Book Design
The PDF rendering engine has CSS support. This changes the language of design from Indesign to CSS - which means any web native can control the design of the book.

implemented -
Booki is really a Comprehensive Text authoring environment, one output of which is books. Users can be able to publish to static HTML for linking from a website, to .odt (OpenOffice rich text format), standalone HTML, epub, and screen readable PDF. Other XML, and 'e-book' output options can be developed as Extensions.

Real Time Collaboration Tools
partially implemented
Book Sprints, remote, and asynchronous authoring all have their own communication requirements. Harmonising these into one system is where FLOSS Manuals has done a lot of real world research and Booki will take the best of what we have learned. Booki has tools such as real time edit notifications to see who is editing what at this moment, a real time chat (web / IRC gateway), system level notifications, and chapter status markers. More is to come including book progress indicators, work flow tools, messaging, and live user status listings.

not currently implemented
Booki needs to available in any language where it is needed. Hence we will integrate the mature Pootle code base into Booki to enable localisation of the environment.

not currently implemented
Content can be forked and marked for translation. A translation version of a book will provide link backs to the original material, be placed in a translation work flow, and edited in a side-by-side view where the translator can also see the original source. We are considering a World Wide Lexicon Extension to add machine translation to the work flow

implemented -
Booki is also useful for importing book content. Currently Booki supports the import of epubs (1.6 million), Wikibooks (from, and any epub online. Currently the Wikiboks importing is very experimental.

implemented -
Booki is installable to run as a web service of locally. Installation can be done from source that will require python knowledge. At a later date Ubuntu and Debian users will be able to easily install Booki using the .deb packages (no knowledge of python required).

Booki Service
implemented -
FLOSS Manuals will itself use Booki for development of manuals about Free Software. We will also run a free Booki service on the domain for those who do not wish to install their own version.

Embed API
not currently implemented
Many users will want to use Booki to author material to host under their own domain. Booki will provide an API similar to the FLOSS Manuals beta API for embedding books with indexes in their own websites. This means users need only cut and paste a few lines of HTML into their website and the book will appear as if hosted under their domain.

User Pages
partially implemented
Booki puts the user in the center of the design. From the users point of view this makes Booki user-centric, not content centric. At the moment the user pages show just the users profile ad the list of books and groups they have created. Later a user page will become homepage when you log in and from here you can monitor changes in books, communicate with others, and participate. From this page you can create books, create and join groups, make announcements about Book Sprints or other activities, track changes on your own or others books, and subscribe to user services.

Dynamic Groups
Booki groups are self associating collections of users that collaborate to write books on a given topic. For example, FLOSS Manuals would be one such group, which aggregates manuals about Free Software. If I want to help others write Free Software manuals I would subscribe to the FLOSS Manuals group.

pariially implemented
Users have personal RSS feeds that can be used to track changes. Books can not yet be syndicated with RSS.

Copyright Tracking and Management
partially implemented
All attributions are currently automated in Booki. We also desire to reduce the overhead for finding the rights holder for any work authored in Booki so the process of obtaining re-license and re-use permission will be partially automated. Meaning that the technical process of managing licenses is taken away from the user, making the permissible reuse of content very easy.

Book Management
In Booki new chapters can easily be added to the Index, redundant ones removed, and the Index can be managed with a drag and drop interface.

License Control
Users can decide the license for any book they create. At a later date Booki will ensure, as far as it is technically feasible (its difficult to prevent simple cut and paste copyright violations), that content from within a Booki content base is not recombined with incompatibly licensed material. Licenses can also be managed on a chapter level. Open content licenses will be used by default.