## Innards

Github will process web material with Jekyll to make a fully functioning website and that is how we deploy these pages. Most things are handled with templates but a few odds and ends are important to know about.

## Format

All posts are written using the kramdown / github markdown (GFM) style. Basic markdown which is very similar to that used in the jupyter notebooks.

The backtick code block extensions for GFM don’t properly highlight in the web pages so we use the following

which does this:

And something in python

We have added mathjax scripting to produce equations

which look like this

$$S \frac{\partial h}{\partial t} + H = -\frac{\partial }{\partial x} \underbrace{\left( - K \frac{\partial h}{\partial x} \right)}_\text{flux}$$

Note that, if you have underscores or stars or other markdown markup in the equation then you need to be careful

Will not work because of the underscores being interpreted by the markdown parser before mathjax. Easiest trick is to separate them from the argument with a space (i.e. consistently on one side only).

Images can be added using standard markdown or using the html <figure> tags. The latter allows more flexibility with captions, specification of figure widths etc. At the moment, we probably recommend something like this:

## What goes where

The website is organised like this:

New posts are added to the _posts directory. They need to contain the yaml header (just use the template as a starting point). It is possible to switch off the comment stream, change the post image, and change the date in the header (which reflects updates). The yaml header can have any variables defined which can be picked up by jekyll and used in the logic of conditionals / variables etc.