Syntax. The Engage Markdown

Indent four spaces to create an escaped <pre> <code> block:

    printf("%d\n", 42);  /* what was the
     question again? */

The text will be wrapped in tags, and displayed in a monospaced font. The first four spaces will be stripped off, but all other whitespace will be preserved.

Markdown and HTML are ignored within a code block:

       You would hate this if it weren't
     wrapped in a code block.

Code blocks will automatically be highlighted via highlight.js

Fenced Code Blocks

An alternative to indenting you can utilise triple backticks to fence your code blocks.

def somefunc(param1='', param2=0):
    r'''A docstring'''
    if param1 > param2: # interesting
        print 'Gre\'ater'
    return (param2 - param1 + 1) or None

Fenced code blocks will also automatically be highlighted via highlight.js

To force the language selection for highlighting you can specify it immediately after the first fence.

def somefunc(param1='', param2=0):
    r'''A docstring'''
    if param1 > param2: # interesting
        print 'Gre\'ater'
    return (param2 - param1 + 1) or None

Use single backticks to create an inline <code> span:

The `$` character is just a shortcut for `window.jQuery`.

(The backtick key is in the upper left corner of most keyboards.)

Like code blocks, code spans will be displayed in a monospaced font. Markdown and HTML will not work within them. Note that, unlike code blocks, code spans require you to manually escape any HTML within!

If your code itself contains backticks, you may have to use double backticks as delimiters:

The name ``Tuple`2`` is a valid .NET type name.

End a line with two spaces to add a <br/> linebreak:

How do I love thee?  
Let me count the ways
*This is italicized*, and so is _this_.
**This is bold**, and so is __this__.
Use *** italics and bold together*** if you ___have to___.

There are three ways to write links. Each is easier to read than the last:

Here's an inline link to [Google](
Here's a reference-style link to [Google][1].
Here's a very readable link to [Yahoo!][yahoo].


The link definitions can appear anywhere in the document -- before or after the place where you use them. The link definition names [1] and [yahoo] can be any unique string, and are case-insensitive; [yahoo] is the same as [YAHOO].

Links can have a title attribute, which will show up on hover. Title attributes can also be added; they are helpful if the link itself is not descriptive enough to tell users where they're going.

Here's a [poorly-named link]( "Google").
Never write "[click here][^2]".
Visit [us][web].

(Advice against the phrase "click here")
[web]: "Stack Overflow"

You can also use standard HTML hyperlink syntax.

<a href="" title="example">example</a>

We do not support "naked" URLs. To force URLs, enclose them in angle brackets:

Have you seen <>?

URLs can be relative or full.

Underline text to make the two <h1> <h2> top-level headers :

Header 1

Header 2

The number of = or - signs doesn't matter; one will work. But using enough to underline the text makes your titles look better in plain text.

Use hash marks for several levels of headers:

# Header 1 #
## Header 2 ##
### Header 3 ###

The closing # characters are optional.

Insert a horizontal rule<hr/> by putting three or more hyphens, asterisks, or underscores on a line by themselves:

Rule #1

Rule #2

Rule #3

Using spaces between the characters also works:

Rule #4   
- - - -

A bulleted <ul> list:

- Use a minus sign for a bullet
+ Or plus sign
* Or an asterisk

A numbered <ol> list:

1. Numbered lists are easy
2. Markdown keeps track of the numbers for you
7. So this will be item 3.

A double-spaced list:

- This list gets wrapped in <p> tags
- So there will be extra space between items

To put other Markdown blocks in a list; just indent four spaces for each nesting level:

1. Lists in a list item:
    - Indented four spaces.
        * indented eight spaces.
    - Four spaces again.
1. Lists in a list item:
    - Indented four spaces.
        * indented eight spaces.
    - Four spaces again.
2.  Multiple paragraphs in a list items:
    It's best to indent the paragraphs four spaces
    You can get away with three, but it can get
    confusing when you nest other things.
    Stick to four.
    We indented the first line an extra space to align
    it with these paragraphs. In real use, we might do
    that to the entire list so that all items line up.
    This paragraph is still part of the list item, but it looks messy to humans. So it's a good idea to wrap your nested paragraphs manually, as we did with the first two.
3. Blockquotes in a list item:
    > Skip a line and
    > indent the >'s four spaces.
4. Preformatted text in a list item:
        Skip a line and indent eight spaces.
        That's four spaces for the list
        and four to trigger the code block.

Add a > to the beginning of any line to create a blockquote. Ensure that after any quoteing you leave a blank line to resume normal paragraph text.

> The syntax is based on the way email programs
> usually do quotations. You don't need to hard-wrap
> the paragraphs in your blockquotes, but it looks much nicer if you do. Depends how lazy you feel.

New paragraphs start after a blank line.

To put other Markdown blocks in a blockquote, just add a > followed by a space:

> The > on the blank lines is optional.
> Include it or don't; Markdown doesn't care.
> But your plain text looks better to
> humans if you include the extra `>`
> between paragraphs.

Blockquotes within a blockquote:

> A standard blockquote is indented
> > A nested blockquote is indented more
> > > > You can nest to any depth.

Lists in a blockquote:

> - A list in a blockquote
> - With a &gt; and space in front of it
>    * A sublist

Preformatted text in a blockquote:

>     Indent five spaces total. The first
>     one is part of the blockquote designator.

Images are exactly like links, but they have an exclamation point in front of them:

![Valid XHTML](

The word in square brackets is the alt text, which gets displayed if the browser can't show the image. Be sure to include meaningful alt text for screen-reading software.

Just like links, images work with reference syntax and titles:

This page is ![valid XHTML][checkmark].

 "What are you smiling at?"

Note: Markdown does not currently support the shortest reference syntax for images:

Here's a broken ![checkmark].

But you can use a slightly more verbose version of implicit reference names:

This ![checkmark][] works.

The reference name is also used as the alt text.

You can also use standard HTML image syntax, which allows you to scale the width and height of the image.

<img src="" width="100" height="100">

URLs can be relative or full.

YouTube & Vimeo

You can embed YouTube or Vimeo videos that can be useful for demonstrating artefacts or desired behaviours. To embed a YouTube or Vimeo video, use the youtube! and vimeo! prefixes respectively, followed by the YouTube/Vimeo ID.

Below are two videos highlighting the artefacts in question

If you need to do something that Markdown can't handle, use HTML. Note that we only support a very strict subset of HTML!

To reboot your computer, press <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>del</kbd>.

Markdown is smart enough not to mangle your span-level HTML:

<b>Markdown works *fine* in here.</b>

Block-level HTML elements have a few restrictions:

  1. They must be separated from surrounding text by blank lines.
  2. The begin and end tags of the outermost block element must not be indented.
  3. Markdown can't be used within HTML blocks.
You can <em>not</em> use Markdown in here.