Markdown Syntax

Markdown syntax reference ant its enhanced features.

Markdown is a text formatting syntax inspired on plain text email. In the words of its creator, John Gruber:

The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.

Strong and Emphasize


Strike Through

~~delete this text~~


[link text]( "title")
[link text](


![alt text](https://path/to/img.jpg "title")

![alt text](https://path/to/img.jpg)

Image with "title" will be shown as <figcaption>.

Image Gallery is formatted by multiple image markup:

![alt](/img/src) ![alt](/img/src)


Atx-style headers:

# h1
## h2
### h3

Closing # are optional.

# h1 #
## h2 ##


Ordered list without paragraphs:

1. foo
2. bar

Unordered list with paragraphs:

* A list item.

  With multiple paragraphs.

* bar

You can nest them:

* Abacus
  * anser
* Bubbles
  1. bunk
  2. bupkis
     * bar
  3. burper
* Cunning


> Email-style angle brackets
> are used for blockquotes.

> > And, they can be nested.

> #### Headers in blockquotes
> * You can quote a list.
> * Etc.

Horizontal Rules

Three or more dashes for asterisks.


Manual Line Breaks

End a line with two or more spaces:

Roses are red, [space][space]
Violets are blue. [space][space]

Fenced Code

Besides indenting with 4 spaces for a code block, there is fenced code block.

def hello():


Here is a footnote[^key]. The key is better to be `word-word` style.


Math is supported via MathJax. A simple example by MathJax:

$$ax^2 + bx + c = 0 $$

Inline level math is wrapped with `$:

`$ax^2 + bx + c = 0$`

Block level math is wrapped with language math fenced code:

ax^2 + bx + c = 0