Welcome to shakebook!

Shakebook is a documentation generator aimed at covering all the bases for mathematical, technical and scientific diagrams, videos and typesetting, written in Haskell. Shakebook uses shake and pandoc to provide combinators for taking markdown files and combining them into documents, but allowing the user to control how. Shakebook provides a set of defaults for building sites like the one you’re reading now, and you can mixin your own shake rules to add additional kinds of compilation units for diagrams and video.

Shakebook allows you to take the same markdown contents and export them both to HTML and PDF simultaneously. This website is generated by this template repository and deployed with gitlab pages.

You can fork this repository or you can use the leaner shakebook-template repository. Simply fork the repository to a new gitlab group under a and the CI will take care of the rest. For full running instructions see the Getting Started section.



Shakebook supports inline latex using pandoc’s markdown renderer. For more information on latex see here.

\(e^{i \theta} + 1 = 0\)

Syntax Highlighting

Shakebook supports syntax highlighting powered by pandoc’s syntax highlighting feature.

class Functor f where
  fmap :: (a -> b) -> (f a -> f b)

Image and Video Compilation

Shakebook allows you to provide custom build rules for generating any content from source in a small amount of code. Here we can see our site uses an example from reanimate, a library for video generation.

Latex Draw

As well as an inline-r example.

Random Cluster

But you don’t need to stick to Haskell libraries. As long as you can build your content from source via a shell command, you can tell Shakebook how to produce it.

For more information see the Images and Compilation Units section.

PDF Output

Shakebook allows you to take the sme markdown content and export it both to HTML and PDF simultaneously, replacing the embedded video with a link wherever needed.

Getting Started

Getting Started

Content And Customization

Making your site your’s

Build Management

Updating the build plans and dealing with updates to Shakebook