This post can be used to document the ways the site currently works.

Country pages:

Each country (will) have its own page. This page will use the 'Countrypage' template (custom-countrypage.hbs in the theme). The idea of this is that it is a page which can be edited for content (such as pulling an epidemiological curve image from a third party source), and below each post are all the posts tagged with that particular country's tag.

Each countrypage must be tagged with the private tag #countrypage, as that allows it to be added to the country list. Nothing but the country page must be tagged with #countrypage.

Note that the country tag should come before any other tag, including the #countrypage tag. This is because the countrypage template filters by primary_tag.

Country pages must have the rapporteurs and contributors listed as the authors, and no-one else. A list of the rapporteurs and contributors will be generated at the bottom of the page based on the page authors. They are categorised as rapporteurs or authors based on whether they have "Rapporteur for" or "Contributor for" in their bios. Their bios are set as a data attribute on the relevant HTML element so that it can be accessed using CSS, and the order of the element adjusted according to whether they are a Rapporteur or Contributor.

Country list:

The country list is the index page of countries. It displays an alphabetical list of countries, along with their rapporteur(s). It is a page with a title, no content, and draws from custom-countrylist.hbs, and can be selected as a template while writing a page as Countrylist.

Text added to this page will appear before the list of countries.

Countries are categorised into Phase One (top) or Phase Two (bottom) based on whether they have the phase-one tag or the phase-two tag.

Topic pages and topic lists

Topics/sectors can have a similar set up to countries, if it is wished. The main thing that would need to be done is to create #topicpage tag, custom-topicpage.hbs and custom-topiclist.hbs. Technically, custom-topicpage.hbs will be identical to custom-countrypage.hbs (as it uses the primary tag of the page to know what posts to put on it, like united-kingdom). However, custom-topicpage.hbs would need to hardcode #topicpage as the tag to draw on, else you'd get the page itself being included in its own list if you took the same approach (as it searches through pages, not posts).

Editorial board pages

An editorial board author page must be set up. This can use foreach to pull author information in nice postcards that can be displayed. Because there will be users who are not on the editorial board, the way I think is best to do this is to add all the editorial board authors as authors of the editorial board page itself, and then pull the authors of that post and cycle through them. They can be put alphabetically (order = "name asc").

This page will contain the editorial committee.

It should be manually created using a custom HTML template in the Casper theme

The author API is here

Examples of how to do it are here

We can select authors for the editoral board by making them all authors of this page and using the page scope as a way to narrow down whose profiles are shown on this page. That would the best way to select, as you cannot add extra flags or data to author profiles in Ghost very easily otherwise. This means that whenever we want to add or remove someone from the editorial board, we just change the authors of this page.

One way to manually add authors in Ghost is here

This is quite useful because it will allow us to make everyone's accounts and bios and add their images without them having to do it each or have to chase them. If they need to log in they can just do a password reset with their email.

Contributors page

This page lists all the authors on the site, i.e. all users who have authored a post. They are sorted into a Rapporteurs and a Other Contributors section depending on whether they have "Rapporteur of" in their bios.

The alphabetical sorting by last name and the trimming of the bio is done with a bit of JS in the custom-authors.hbs template.

Rapporteur pages.

A similar things could be done for rapporteurs, although they will be listed on the country page so it's unclear we would need to? Can discuss.


The tag pages for countries are not being used - instead we are using post pages.

Consequently, when people click on the country name in a post tag, we want them redirected to the country page. So we can keep tag pages working for other tags that aren't countries, we may need to do this manually using the redirect.json in Ghost settings.

For example, at the time of writing, the redirect.json file contains

    "from": "/tag/united-kingdom/",
    "to": "/united-kingdom/",
    "permanent": true

This kind of set-up seems to work well, and we could add it for all countries as we populate the page.

Alternatively, we can set up a new collection using the routes.yaml file. For instance:

    permalink: /country/{slug}/
    template: custom-countrypage.hbs
    filter: primary_tag:#countrypage


  • To create a new theme, visit the admin panel, click "Tags" on the left sidebar, and create a new Tag, e.g "Mandatory Vaccination". Importantly, we need to add "theme-" to the start of the slug field, such that it reads "slug-mandatory-vaccinations" rather than just "mandatory-vaccinations". This is so Ghost knows what Tags are themes.
  • We can set an image and a description for each theme on that same page.
  • To create a new symposia, create a new Tag, but instead of adding "theme-" to the start of the slug field, ensure it ends with "-blog-symposium" instead, e.g. "mandatory-vaccinations-blog-symposium"