Let’s face it, building a presentation is a pain in the neck. If you include graphics that are themselves generated, you have to manually make sure that both your graphics as well as your presentation are rebuilt to have everything up to date.
And what about the code? It should at least compile, so that you can avoid silly typos, but how can you ensure that? Most of the time, it is typed once but later changed, and then errors may be introduced.
In this talk, I will show you how to build a complex presentation from many moving parts that are themselves generated. More specifically, we will use the Haskell library Shake to write build systems as well as other libraries to build a complete presentation from the ground up. We will handle typed configuration, custom build systems, functional package managers, and more!
And even better, our presentation will build in parallel and only do the minimal amount of work necessary after our changes to parts of the generated resources.
The result is a beautiful presentation that is built from the ground up out of generated resources like images, graphs, and checked/linted source code. It is buildable via a single command and does not assume any dependencies installed on your system other than the nix package manager.