Project Platen: A framework for digital books, with API.

Some assembly required.

[Permalink]

The future of digital books is beautiful, but it’s going to require some work, so I built something to help.

[Permalink]

Built on top of the code I used for The Expedition of Humphry Clinker, Project Platen is not meant to be the solution for every digital book project. Each book is different and not every book can afford to be freely available. This particular project was meant for open-access academic publishing in particular, but it is not necessarily the best for all academic books or papers either. But it can be a fast and powerful option.

[Permalink]

Go check the Github repository.

[Permalink]

Getting started

[Permalink]

If you are not familiar with Symphony CMS (which is not to be confused with Symfony), it is an open-source content management system that uses XSLT, which means that you don’t need to know any programing languages to get started (yeah!). Just follow the install instructions in the readme to install.

[Permalink]

By default, it gives readers a simple and clean reading experience with Quiet mode, search using Elasticsearch and Day/Night colors schemes.

[Permalink]

Explore Mode

[Permalink]

The default mode does not provide any default features for Explore mode, that is because every book is different, so the useful metadata and ways to explore will be different for each book. You can make style changes for Explore mode at line 210 in workspace/sass/partials/_page.scss

[Permalink]

The API

[Permalink]

The API will work with the chapters as they are currently set up, but you will need to add more API pages for any additional content types.

[Permalink]

Building for flexible datasets

[Permalink]

Symphony CMS’s flexible content structure lets you create content types to fit the structure of your data. While it will not be nearly as efficient as building a custom database, it should be quite usable for small and medium-sized datasets (perhaps up to about 100,000 entries, I have yet to use it for datasets larger than 30,000 entries). (I suggest also offering static file downloads of large datasets, so people do not have to crawl your API to access all your data.) By default, the API outputs XML, but users can also request JSON(P).

[Permalink]

Enabling Cross-Origin Resource Sharing

[Permalink]

While not necessary for others to access your API, you can you can enable cross-origin resources sharing (CORS) so others can access your content through AJAX. You should think deeply about whether or not to enable CORS on your server, on one hand it lets people access your dataset with javascript, but if you have large and complex datasets, it might be better only let other servers access your API to reduce bandwidth usage. CORS is enabled on books.ayellowraven.com, which is how I can use the table of contents visualization in the blog post introducing The Expedition of Humphry Clinker. But this is only a simple example of the potential. In books with scientific datasets, the potential use cases are endless.

[Permalink]

Using your API in your book

[Permalink]

One of the most powerful uses for the API is that you can call it through AJAX within your book. If you have a dataset that you wish to visualize, you can use javascript libraries such d3.js or vega to generate interactive visualizations for use right in your book (for example, Explore mode table of contents visualization in Humphry Clinker uses the book’s API).

[Permalink]

Coming Soon

[Permalink]

The first version of Project Platen is still in beta, while it is mostly functional, there are a few more features I would like to include before a full release:

[Permalink]

Academics needed

[Permalink]

I am looking for academics who wish to self-publish their research, dissertation, book, or even small side project. I will help set up the server, digitize content, set up the API, rebuild visualizations in d3, and all other design aspects of the project. And it will do so for the first few projects pro bono. This is a chance for someone to help me shape the future of Project Platen and its successors. Contact me or find me on Twitter.