Post

Jackal - A tool for developing Jekyll based web sites

I developed and maintain this website from a set of files using a static site generator called Jekyll. Every time you make a change, you run a specific command to “generate” the site. It then produces a complete, self-sufficient directory of files that can be deployed to a web server that serves .html pages.

This places very few demands on the server, except for the ability to serve ready-to-go HTML pages and the images and other files they attempt to load (JavaScript, CSS, etc.). Yet Jekyll supports consistent formatting through themes, and its templating engine can generate content as well. For more, read the Jekyll documentation.

To generate the site and, optionally, preview it locally, you need to run commands that require installing several tools and related dependencies. While they could be installed locally, modern approaches advocate keeping tooling isolated, particularly for the task at hand. One way to achieve this is to run all the tooling and operations in a Docker container.

Docker, however, is not always easy to set up, and the files required to run these tools are not easy to find or are not generic enough to be used by just anyone. So I set out to create Jackal to make all this easy. Jackal prefers to work through Docker, but if you do not have Docker installed or do not wish to use it, it can also use local tooling.

Today, I made version 0.9.1 of Jackal, the first publicly available release on GitHub. Start by reading the documentation. As an example, after I am done editing files for this site, I issue just these two commands:

1
2
$ jackal build
$ jackal rsync

That’s it. My site is generated in under 2 seconds, and any files not already on the server are uploaded, and any updated files are replaced. The updated site is now published on my server.

This post is licensed under CC BY 4.0 by the author.