The new build system for Ximera content written in Go
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs Installation directions for a static libgit2 Jan 13, 2018
bake.go sirupsen is now lowercase per Jul 31, 2017 okay fine i have a changelog Aug 1, 2017
chat.go Rely on dependency hashes in .html files to verify necessity of rebuilds Jul 6, 2018
clean.go sagetex cleaning should involve more but this is something Aug 23, 2017
compile.go verify that htlatex exists and the like Jul 10, 2018
easter-egg.go Handling dependencies in worker threads May 18, 2017
files.go rely on modification times when dependency hashes fail Jul 6, 2018
serve.go Can pull remotely published content Jul 6, 2018


Tag License: GPL v3 Build Status

Xake is the build tool for Ximera. It is used to manage the conversion of TeX files into .html files, and the publication of the resulting .html files. You may be interested in some of the underlying design principles.

The easiest way to install xake is with a package manager.

The basic workflow is as follows.

  1. Make some edits.
  2. git add and git commit to commit your source TeX files to your repository.
  3. xake bake compiles your TeX files into .html files.
  4. xake frost creates a special git tag for the .html files.
  5. xake serve pushes your TeX source and the special git tag to the Ximera server.

The xake bake step is smart enough to only recompile files which have changed. The xake frost step creates the "frosting" meaning a git tag pointing to a commit sitting on top of the repo's HEAD. The final xake serve is actually just a wrapper around git push which pushes the frosting to the server.

Using xake

First, if you don't already have a GPG key, create one. You can get started with gpg --gen-key and then following instructions such as

To be permitted to make use the server, you will need to have your GPG key trusted by the Ohio State team. Email with a copy of your key and we'll sign it for you; alternatively, find someone else who has permission to use and simply have them sign your key.

To share your signed public key with Ximera, use the command

gpg --keyserver hkps:// --send-key YOUR-GPG-KEY-ID

(You may need gnupg-curl installed.)

At that point, xake --key YOUR-GPG-KEY-ID name REPONAME will create the remote repository and you will then be able to git push ximera master to store your work on The name of your repository should contain only alphanumeric characters for now.