Website for the eScience Lab at University of Manchester
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

website for eScience Lab, University of Manchester

Published at


© 2015-- University of Manchester.

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.

Some resources are covered by other licenses or have different attributions, see NOTICE for details.


Website is generated by Jekyll and GitHub Pages

See the Jekyll documentation

  • Pages are edited in MarkDown
  • See also various Jekyll's documentation on writing posts and writing pages
  • You can edit directly in GitHub web interface, or use git and your favourite editor
  • Edited pages are published automatically by GitHub after a few minutes.
    • For extensive changes or debugging, you might want to git clone this repository and run Jekyll locally to test your changes and see debug outputs.
    • Test locally with Docker image jekyll/jekyll:pages:
      • docker run -it --rm --name jekyll --volume=$(pwd):/srv/jekyll -p 4000:4000 jekyll/jekyll:pages jekyll serve
      • Inspect at - edited files are updated live
      • Stop it with Ctrl-C or docker stop jekyll.
      • You may also run Jekyll outside Docker using rvm - left as an exercise to the reader

Types of pages

The corresponding source file for a particular URL depends on what type it is.

Regular pages

Regular pages like correspond directly to pages on, but with / as ending instead of .md, e.g. These can be nested in folders, e.g. publications/ corresponds to,

Regular pages should have a header like this:

layout: page
title: About
permalink: /about/

The title is used to generate the <title> and <h1> text, and permalink can be added to modify the final relative URI. If a page should NOT be included in the menu, then also add exclude_from_nav: true.

Note that the MarkDown preview in GitHub might differ slightly from the final Jekyll's rendering on

Pages using Jekyll templates

The layout files and some of the top-level pages use Jekyll Liquid Templates to include content from their child pages. For instance, include:

## Current funded projects

{% for project in site.projects %}
{% unless project.expired %}
* [{{ project.title }}]({{ project.url }}) - {{ project.description }}
{% endunless %}
{% endfor %}

You can recognize templates as using the {{ or {% syntax. You should be more careful when editing these, e.g. by testing with your own Jekyll locally and check the logs.

In the example above, the properties are picked up from the headers of the files in the corresponding _project folder.

Collection pages

The pages in _ folders are called collection pages, because they are listed in their parent pages. For instance the folder _products is used to generate, where sub-pages like correspond to _products/

It is important to maintain the special collection page headers; each collection folder has a different layout and (somewhat) differerent properties. The easiest is to copy from a neighbouring collection page that looks complete, for instance _projects/ has Markdown headers like:

layout: project
name: bioexcel
title: BioExcel
path: bioexcel.html
collection: projects
description: Centre of Excellence for Biomolecular Research
logo: bioexcel.svg
start_date: 2015-11-01
duration: 36 months

These properties are picked up the the corresponding layout file in _layouts, e.g. _layouts/product.html include:

        <h1 class="post-title">{{ page.title }}</h1>
        <!-- .. -->
            <img src="{{ page.logo }}" alt="{{ page.title }}" height="75" max-height="100">

Some of the properties might also be picked up by the collection index page at the root, e.g. or even the index page.


Images should be uploaded to /images, but could also be nested in a regular folder, e.g. gamble-mim-10.1109_eScience.2012.6404489.pdf in /publications/preprints/2012 is shown in

Note that unlike an Apache httpd server, no directory listing is generated, so unless an file is provided or a page specifies the folder as its permalink property, then the corresponding parent, e.g. will say 404 Not Found. (Tip: the folder-listing is still public in GitHub, so the URLs aren't secret)


We appreciate any contributions to keep our website up to date. Feel free to raise a pull request or raise an issue. Every page should have an Improve this page link at the bottom, which you are free to use to suggest a change.