Government Service Design Manual
CSS JavaScript HTML Ruby Liquid Shell Makefile
Latest commit 42e0ef4 Nov 7, 2016 @thehenster thehenster committed on GitHub Merge pull request #665 from edent/patch-4
Disambiguate single response question
Failed to load latest commit information.
_includes Use the main /search endpoint with filter_manual Aug 8, 2016
_layouts Update banner copy to invite users to new survey Jun 13, 2016
_plugins Use /service-manual instead of service-manual for "manual" value May 16, 2016
_search Use the main /search endpoint with filter_manual Aug 8, 2016
docs Move deployment documentation from the private wiki Jul 13, 2016
service-manual Merge pull request #665 from edent/patch-4 Nov 7, 2016
tmp Add spellchecking tool May 27, 2014
tools gofmt Dec 24, 2014
.gitignore Typo and link fixes, gemfile.lock put back Sep 17, 2014
.gitmodules Revert "Switch to using jekyll-assets to include assets" Nov 24, 2013
.ruby-version 2.1.2 is available on the dev VM and via boxen Jul 31, 2014
.travis.yml Remove duplicate steps in build Aug 4, 2015 Link to pull request help on github May 18, 2015
Gemfile Change all instances of unified_search to search Sep 1, 2016
Gemfile.lock Change all instances of unified_search to search Sep 1, 2016
Makefile Add ability to exclude paths from linting Oct 16, 2014
Procfile Add a Procfile Jul 29, 2014 Move deployment documentation from the private wiki Jul 13, 2016
Rakefile Bump GDS API adapters to 20.1.1 Jul 3, 2015
_config.yml Add Rakefile for the router Aug 7, 2014
app.json Heroku has a limit of 30 chars on the app name Aug 13, 2014
app.rb Change all instances of unified_search to search Sep 1, 2016 Log the git merge artefacts that we don’t like Jan 21, 2015 Set Encoding to UTF-8 Aug 11, 2014
robots.txt Add robots.txt to avoid heroku sites being indexed Jul 29, 2014

Build Status

Government Service Design Manual

This is the repository for the UK government's guidance and standards for developing digital services and contains both the assets and the content for the site.

The site is built using Jekyll, and the CSS is Sassified. Some validation of the content happens using Go, so you will need to have Go installed if you wish to use the Makefile.


GDS-specific instructions are for how to deploy this content.

Running the app yourself

Depending on your version of Git, you may need to run these commands to bring in the GOV.UK Frontend Toolkit:

$ git submodule init
$ git submodule update

This should import Sass files from the GOV.UK Frontend Toolkit repository into /service-manual/assets/toolkit/.

Next, install dependencies using bundler::

$ bundle install

You need to create the content::

$ bundle exec jekyll build

To start the app::

$ bundle exec ruby app.rb

This will compile the site and make it available at http://localhost:4567/.

In a separate terminal, you'll need to run:

$ bundle exec jekyll build --watch

This will monitor the service manual and rebuild it whenever it's changed.

Running on Heroku

This application should run fine on Heroku. You will need to have set yourself up with a Heroku account and the command-line tools. Then create an application on Heroku.

> heroku create <app-name>

Make your change locally, commit and deploy them to Heroku as needed. If the code you're deploying is not in master, then you'll need to make sure you specify your local branch to push to master. Otherwise it will just deploy your local master (and probably not work as expected).

> git push heroku master

Then open to see your changes.

Click-through version


YAML page meta data schema

Pages in a Jekyll site begin with a section of YAML meta data, which specifies how the page should be rendered, where it should be linked from and so on.

The following keys are used throughout:

Content page meta data

Key Values Description
title: Page title Used at the top of the page, and in links to the page
subtitle: Page subtitle Used below page title, and optionally in links to the page
category agile, assisted-digital, user-centred-design, etc The category the page lives in the browse page
layout: detailed-guidance, role-index, phases, etc Page layout
type: guide, resource Used to differentiate content types so they can be grouped on index pages
audience: primary: designer, developer, researcher etc. Primary audience. Link to page will appear in top half of audience index page
audience: secondary: Secondary audience. Link to page will appear in bottom half of audience index
phases: discovery, alpha, beta, live An array of values. Adds links to page header and lists pages in relevant phase page
breadcrumbs: An array of objects with title: and url: values Adds a breadcrumb trail to the top of the page
exclude_from_search: true Exclude the page from search. The default behaviour is to include the page in search.

Index page meta data

Index pages list out links to content pages, for example, the role specific pages that are built using the audience keys.

Key Description
hero: Takes the value of the title key of a page