papermill:
“Books as Software”

Produce long-form text using the tools powering (open source) software development.
Write semantic, structured content and cross-publish for print and web.

 Introduction  Manual

Caution! The papermill framework is in an early alpha stage — it is basically a “Request For Comments”.

Goals

The framework has 3 primary goals:

Text development

Make the mode of production and tools used in (open source) software development more accessible for authors and writers.

Cross-media publishing

Produce a document source which is as media-agnostic as possible, in the hopes that if it works for print and web today, it should be possible to adapt to the to-be-invented media of the future.

Long-term reproducibility

Make sure that once written, the source of a publication can be compiled into the desired output 'forever', or at least as long as computers exist.

From these, we can derive our secondary goals:

Plain text

If a document is to be written in a binary container (like a Microsoft Word File), the usefulness of a software-like development process are very limited.

Online & offline

The framework should be usable on a general purpose computer without requiring an internet connection.

Simplicity

A complicated system is harder to use, explain and extend than a simple one.

A long-term goal is to abstract away as much as possible from the user, while at the same time still providing all the necessary information for those who want or have to know what is happening in the background.

Free-Libre-Open-Source

Considering the already listed goals, the problems that arise from them and the existing approaches to solve them, we can safely conclude that there is no alternative to use ‘open source’ software, at least for the framework itself.

Tools

Building Blocks

The most important parts of the framework are existing tools that programmers already love to use.

git

Version control that doesn't suck. Free and open source, distributed, fast and efficient.

Project website »

Markdown

Markup syntax for humans, easy to type and read.

Learn More »

(La)TeX

Typesetting engine

Learn More »

Prototypes

These building blocks need better integration to be useful for non-technical authors, provided in the form of small prototypes. Their development happens parallel to real-world publications produced with it.

Project

A configuration file for publications, inspired by package.json

View draft »

mill

A command line utility, capable of compiling a publication according to the configuration.

View Code »

bookstrap

Template and style for web output. Optimized for readability, based on twitter's bootstrap

View Code »

Example Publications

NTS: PhD

Doctoral Thesis of Naomi T. Salmon at the Bauhaus-University Weimar (in German).

193 pages in print, it deals with the professionalization process of contemporary artists.

Read it Source

Papermill

My Bachelor Thesis about this project.

Includes an Introduction into the topic as well as a complete end-users Manual

Read it Source

Roadmap

These components will be developed in the future, aiming to provide a complete, usable solution for non-technical authors. As always, feedback, ideas and contributions are greatly appreciated.

API

Compile publications “in the cloud”, no need to install ~2GB of dependencies.

CI

Will compile the publication whenever there new changes published – think Travis CI for books.

IDE

Write and publish, all inside a web browser!

Will be a hosted service, but also built into the CLI.

Contribute

Everything is Open Source, including the documentation and this website.

Make it better by just writing me, filing issues or proposing changes on github or donating itcoin.