Skip to main content

Markdown guide

Markdown is a lightweight markup language that allows you to add formatting to plain text documents.

Paragraphs and line breaks

To create paragraphs, use a blank line to separate one or more lines of text.

Markdown Rendered output
This is the first paragraph.

And this is the second one.

This is the first paragraph.

And this is the second one.

To create a line break or new line (<br>), end a line with 2 or more spaces, and then type return.

Markdown Rendered output
This is the first line.
And this is the second one.

This is the first line.
And this is the second one.

Headings

To create a heading, add number signs (#) in front of a word or phrase.

The number of number signs you use should correspond to the heading level. For example, to create a heading level 3 (<h3>), use 3 number signs (e.g., ### My Header).

Markdown Rendered output
# Heading level 1

Heading level 1

## Heading level 2

Heading level 2

### Heading level 3

Heading level 3

#### Heading level 4

Heading level 4

##### Heading level 5
Heading level 5
###### Heading level 6
Heading level 6

Horizontal rules

To create a horizontal rule, use 3 or more asterisks (***), dashes (---), or underscores (___) on a line by themselves.

***
---
___

The rendered output of all 3 looks identical:


Blockquotes

To create a blockquote, add a > in front of a paragraph.

> Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.

The rendered output looks like this:

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.

Blockquotes with multiple paragraphs

Blockquotes can contain multiple paragraphs. Add a > on the blank lines between the paragraphs.

> Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.
>
> Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

The rendered output looks like this:

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.

Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

Nested blockquotes

To nest blockquotes, add a >> in front of the paragraph you want to nest.

> Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.
>
> > Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

The rendered output looks like this:

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise.

Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

Blockquotes with other elements

Blockquotes can contain other Markdown formatted elements. Not all elements can be used — you’ll need to experiment to see which ones work.

> #### Check the MOT status of a vehicle
>
> If your vehicle is new, you must [get an MOT test](https://www.gov.uk/getting-an-mot) by the third anniversary of its registration.

The rendered output looks like this:

Check the MOT status of a vehicle

If your vehicle is new, you must get an MOT test by the third anniversary of its registration.

Lists

Ordered lists

To create an ordered list, add line items with numbers followed by periods. The numbers don’t have to be in numerical order, but the list should start with the number one.

1. First item
2. Second item
   1. Indented item
   1. Indented item
3. Third item
  1. First item
  2. Second item
    1. Indented item
    2. Indented item
  3. Third item

Unordered lists

To create an unordered list, add dashes (-), asterisks (*), or plus signs (+) in front of line items. Indent one or more items to create a nested list.

- First item
- Second item
  - Indented item
  - Indented item
- Third item
  • First item
  • Second item
    • Indented item
    • Indented item
  • Third item

Nesting different list types

You can also nest an unordered list in an ordered list, or vice versa.

1. First item
2. Second item
   - Indented item
   - Indented item
3. Third item
  1. First item
  2. Second item
    • Indented item
    • Indented item
  3. Third item

Starting unordered list items with numbers

If you need to start an unordered list item with a number followed by a period, you can use a backslash (\) to escape the period.

- 2012\. A great year!
- I think 2009 was second best.
  • 2012. A great year!
  • I think 2009 was second best.

Description lists

To create a description list, type the term on the first line. On the next line, type a colon followed by a space and the description.

First Term
: This is the description of the first term.

Second Term
: This is one description of the second term.
: This is another description of the second term.

The rendered output looks like this:

First Term
This is the description of the first term.
Second Term
This is one description of the second term.
This is another description of the second term.

Contents list

To add a table of contents, add the following Markdown where you want the list to appear on the page:

[[toc]]

Code

Code spans

To denote a word or phrase as code, enclose it in backticks (`).

At the command prompt, type `npm install`.

At the command prompt, type npm install.

Code blocks

By default, Eleventy doesn’t support the Markdown syntax for indented code blocks because pages can render incorrectly should a layout or component include indented markup.

To include code blocks in your documentation, you should use fenced code blocks instead. These use 3 backticks (```) or 3 tildes (~~~) on the lines before and after the code block.

```
{
  "firstName": "William",
  "lastName": "Pitt",
  "age": 24
}
```

The rendered output looks like this:

{
  "firstName": "William",
  "lastName": "Pitt",
  "age": 24
}

Syntax highlighting

This feature allows you to add color highlighting different programming languages. To add syntax highlighting, specify a language next to the backticks before the fenced code block.

```json
{
  "firstName": "William",
  "lastName": "Pitt",
  "age": 24
}
```

The rendered output looks like this:

{
  "firstName": "William",
  "lastName": "Pitt",
  "age": 24
}

Emphasised text

To emphasise text, add one asterisk or underscore before and after a word or phrase.

The GDS Style Guide recommends against the use of italics, and the GDS Transport font doesn’t provide an italic style. Use ‘single quotation marks’ if referring to a document, scheme or initiative.

Markdown Rendered output
This text is *emphasised*.

This text is emphasised.

This text is _emphasised_.

This text is emphasised.

Strongly emphasised text

To bold text, add 2 asterisks or underscores before and after a word or phrase.

The GDS Style Guide recommends using emboldened text when referring to text from interfaces in technical documentation or instructions.

Markdown Rendered output
This text is **strongly emphasised**.

This text is strongly emphasised.

This text is __strongly emphasised__.

This text is strongly emphasised.

Deleted text

To show that certain words are a mistake not meant for inclusion in the document, use 2 tilde symbols (~~) before and after the words.

~~The world is flat.~~ We now know that the world is round.

The rendered output looks like this:

The world is flat. We now know that the world is round.

Inserted text

To show inserted text, use 2 plus signs (++) before and after the words. You can use this alongside the syntax for deleted text.

I need to ~~remove~~ ++insert++ a word.

The rendered output looks like this:

I need to remove insert a word.

Highlighted text

To highlight words, use 2 equal signs (==) before and after the words.

I need to highlight these ==important words==.

The rendered output looks like this:

I need to highlight these important words.

Subscript and superscript text

For subscript text, use one tilde symbol (~) before and after the characters.

H~2~O

The rendered output looks like this:

H2O

For superscript text, use one caret symbol (^) before and after the characters.

X^2^

The rendered output looks like this:

X2

To create a link, enclose the link text in brackets (e.g., [GOV.UK]) and then follow it with the URL in parentheses (e.g., (https://www.gov.uk)).

Visit [GOV.UK](https://www.gov.uk).

The rendered output looks like this:

Visit GOV.UK.

URLs and email addresses

To turn a URL or email address into a link, enclose it in angle brackets.

<https://www.gov.uk>
<mailbox@example.org>

The rendered output looks like this:

https://www.gov.uk
mailbox@example.org

To emphasise links, add asterisks before and after the brackets and parentheses. To denote links as code, add backticks in the brackets.

Visit the **[Markdown Guide](https://www.markdownguide.org)**.
See the section on [`code`](#code).

The rendered output looks like this:

Visit the Markdown Guide.
See the section on code.

Images

To add an image, add an exclamation mark (!), followed by alternative text in brackets, and the path or URL to the image asset in parentheses. You can optionally add a caption in quotation marks after the path or URL.

The rendered output looks like this:

![A crown icon above the words GOV.UK.](/assets/images/govuk-opengraph-image.png "The GOV.UK logo")
A crown icon above the words GOV.UK.
The GOV.UK logo

Linking images

To add a link to an image, enclose the Markdown for the image in brackets, and then add the link in parentheses.

[![A crown icon above the words GOV.UK.](/assets/images/govuk-icon-180.png 'Visit GOV.UK')](https://www.gov.uk)

The rendered output looks like this:

A crown icon above the words GOV.UK.
Visit GOV.UK

Tables

To add a table, use 3 or more hyphens (---) to create each column’s header, and use pipes (|) to separate each column.

| Syntax    | Description |
| --------- | ----------- |
| Header    | Title       |
| Paragraph | Text        |

The rendered output looks like this:

Syntax Description
Header Title
Paragraph Text

Cell widths can vary, as shown below. The rendered output will look the same.

| Syntax | Description |
| --- | ----------- |
| Header | Title |
| Paragraph | Text |

Alignment

You can align text in the columns to the left, right, or center by adding a colon (:) to the left, right, or on both side of the hyphens within the header row.

| Syntax    | Description | Test Text   |
| :-------- | :---------: | ----------: |
| Header    | Title       | Here’s this |
| Paragraph | Text        | And more    |

The rendered output looks like this:

Syntax Description Test Text
Header Title Here’s this
Paragraph Text And more

Footnotes

Footnotes allow you to add notes and references without cluttering the body of the document.

When you create a footnote, a superscript number with a link appears where you added the footnote reference. Readers can click the link to jump to the content of the footnote at the bottom of the page.

To create a footnote reference, add a caret and an identifier inside brackets ([^1]).

Identifiers can be numbers or words, but they can’t contain spaces or tabs. Identifiers correlate the footnote reference with the footnote itself — in the output, footnotes get numbered sequentially.

Add the footnote using another caret and number inside brackets with a colon and text ([^1]: My footnote.).

You don’t have to put footnotes at the end of the document. You can put them anywhere except inside other elements like lists, blockquotes, and tables.

Here’s a simple footnote,[^1] and here’s a longer one.[^longer]

[^1]: This is the first footnote.

[^longer]: Here’s the second, which has 2 paragraphs.

    Indent any following paragraphs to include them in the footnote.

The rendered output looks like this:

Here’s a simple footnote,1 and here’s a longer one.2

Typographic replacements

Description Text Rendered output
En dash --
Em dash ---
Ellipsis ...
Single quotes 'single' ‘single’
Double quotes "double" “double”
Simple fractions 1/2 1/3 2/3 1/4 3/4 ½ ⅓ ⅔ ¼ ¾
Multiplication 2 x 3 2 × 3
Greater than 2 => 1 2 ≥ 1
Less than 1 <= 2 1 ≤ 2
Plus-minus 2.4 +-1 2.4 ±1
Guillemets <<Bonjour!>> «Bonjour!»
Copyright (C) (c) ©
Registered trademark (R) (r) ®
Trademark (TM) (tm)