Script to generate PDF and EPUB for "The Ickabog" by J.K Rowling
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nemo 06d6866e6e Give error when xelatex is not installed. Ref #3 2 years ago
.dockerignore [docker] Adds Docker support 2 years ago
.gitignore Improve generation by adapting code from @lesensei 2 years ago
Dockerfile New chapters, Add ToC, fix Docker 2 years ago
LICENSE Adds cover art 2 years ago Only english editions should be via Web Archive 2 years ago
cover.jpg Improve generation by adapting code from @lesensei 2 years ago
cover.ora Improve generation by adapting code from @lesensei 2 years ago
cover.pdf Improve generation by adapting code from @lesensei 2 years ago Give error when xelatex is not installed. Ref #3 2 years ago


Generates ebooks for The Ickabog by J.K Rowling. Uses original text from Supports all 9 languages.


  • wget
  • pup and jq to parse input files
  • pandoc to generate EPUB and PDF files
  • qpdf to add cover to PDF files. (optional)
  • kindlegen or calibre installed to generate MOBI files. (optional)

How to run

Using Docker

mkdir out
docker run --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

If you'd like to generate for a different language, use the following:

mkdir out

# Italiano
docker run --env LC="it" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# English (US)
docker run --env LC="en-us" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# España
docker run --env LC="es" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# Français
docker run --env LC="fr" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# Deutsch
docker run --env LC="de" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# Português brasileiro
docker run --env LC="pt" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# 中文
docker run --env LC="ch" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook

# Русский
docker run --env LC="ru" --volume `pwd`/out:/src/out captn3m0/ickabog-ebook



For generating ebooks for a different language, run the script with a LC parameter

LC=it ./

Various values for LC are: it, en-us, es, fr, de, pt, ch, ru. If you don't pass a value, the default (en-GB) is used.

You should have ickabog.epub, and ickabog.pdf in the out directory after the script finishes.

  • If you have ConTeXt installed, you will also get a out/ickabog-large.pdf file with large fonts to be kid-friendly.
  • If you have qpdf installed, the PDF files will have cover pages
  • If you have calibre or kindlegen installed, a out/ file will also be generated. Preference is given to kindlegen.

Known Issues

The PDF is optimized for few pages of printing, so has a small font size by default. If you'd like a kid-friendly version, install context to get ickabog-large.pdf file. ~ConTeXt comes preinstalled in the Docker image, so that's the easiest way to get the same.~


The cover art is Avanyu by Julian Martinez. Used under Creative Commons license.

Julian Martinez, Avanyu, ca. 1923, watercolor, ink, and pencil on paper, Smithsonian American Art Museum, Corbin-Henderson Collection, gift of Alice H. Rossin, 1979.144.85

Code for internationalization and automatic chapter updates via @lesensei's fork.


A list of my other EBook generation projects:, includes a link to other related projects as well.


The little code in this repository is licensed under the MIT License. See LICENSE file for details.