Now,开始吧。。。

区块元素

段落与换行

一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。

如:

这是一个段落。

长这样:

这是一个段落。

标题

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。这里只讲类atx形式。

类 Atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,#后跟的文字之间最好有一个以上的空格(有的markdown解析程序不解析无空格的),例如:

# h1
## h2
### h3
#### h4
##### h5
###### h6

长这样:

h1

h2

h3

h4

h5
h6

区块引用Blockquotes

Markdown 标记区块引用是使用类似 email 中用 > 的引用方式。即在每行的最前面加上 >,或者在整个段落的第一行最前面加。如:

> 这是一行引用
> 这是另一行引用

>这是一段引用。
是啊是啊。

长这样:

这是一行引用

这是另一行引用

这是一段引用。
是啊是啊。

区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的 >,如:

> 这是第一级引用。
>> 这是第二级引用。

长这样:

这是第一级引用。

这是第二级引用。

列表

无序列表使用星号、加号或是减号作为列表标记,如:

* red
* green
* blue

---

+ red
+ green
+ blue

---

- red
- green
- blue

长这样:

  • red
  • green
  • blue

  • red
  • green
  • blue

  • red
  • green
  • blue

有序列表使用数字接着一个英文句点,数字可以无序,为任意数字,如:

5. red
2. green
3. blue

长这样:

  1. red
  2. green
  3. blue

列表项目可以包含多个段落,每个项目下的段落都必须缩进4个空格或是1个制表符,如:

1.  this is a list item

    haha

    xixi

2.  yes, it is.

    hehe

长这样:

  1. this is a list item

    haha

    xixi

  2. yes, it is.

    hehe

如果要在列表项目内放进引用,那>就需要缩进,如:

* 一个带引用的列表:

    > 这是一个在列表里的引用

长这样:

  • 一个带引用的列表:

    这是一个在列表里的引用

如果要放代码区块的话,该区块就需要缩进两次,也就是8个空格或是2个制表符,如:

* 看代码

        function test(){
                alert('test');
        }

长这样:

  • 看代码

    function test(){
        alert('test');
    }
    

有时遇到这样的写法:

1990. 我的出生年

会变成这样:

  1. 我的出生年

也就是在行首出现数字-句点-空白,又不想被markdown解析,要避免这样的状况,可以在句点前面加上反斜杠。

1990\. 我的出生年

然后长这样:

1990. 我的出生年



ok,终于聊到重点啦:

代码区块

和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown会用<pre><code>标签把代码区块包起来。

要在markdown中建立区块代码很简单,只要简单地缩进4个空格或是1个制表符就可以,如:

这是一个普通段落。

    alert("这是一段代码")

长这样:

这是一个普通段落。

alert("这是一段代码")

再如:

function say(){
    console.log('hello markdown');
}

一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。

在代码区块里,特殊标记会实例化成HTML实体:

<div class="head">
    header
</div>

这样,html代码就可以以你期望的方式原样输出了。

在代码区块中,一般的markdown语法也不会被转换,这样就可以方便的以markdown语法撰写markdown语法相关的文件。

分割线

你可以在一行中用三个以上的星号、减号、底线来建立一个分割线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。如:

---

***

*******

___

--------------------

便会生成:






区段元素

链接

markdown支持两种形式的链接语法: 行内式和参考式两种形式。

不管是哪一种,链接文字都是用[方括号]来标记。

要建立一个行内式的链接,只要在方括号后面紧跟着圆括号并插入网址链接即可,如果你还想要加上链接的title文字,只要在网址后面,用双引号把title文字包起来即可,如:

这是一个[示例](http://www.iwhynot.me/ "title")行内式链接.

[这个链接](http://www.iwhynot.me/)没有标题

长这样:

这是一个示例行内式链接.

这个链接没有标题

参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记,之后再定义标记链接:

链接内容定义形式为:

  • 方括号,里面输入链接文字
  • 接着一个冒号
  • 接着一个以上的空格或制表符
  • 接着链接的网址
  • 选择性地接着title内容,可以用单引号、双引号或是括弧包着

举个栗子:

上网搜索用[Google][1],还是用[百度][2]呢?

[1]: http://google.com/ "Google"
[2]: http://baidu.com/ "百度"

生成:

上网搜索用Google,还是用百度呢?

强调

markdown使用星号()和下划线(_)作为标记强调字词的符号,被`包围的字词会被转成用标签包围,用两个*包起来的,会被转成`,如:

*单星号包住*

_单下划线包住_

**双星号包住**

__双下划线包住__

生成:

单星号包住

单下划线包住

双星号包住

双下划线包住

代码

如果要标记一小段行内代码,你可以用反引号把它包起来(`),如:

`span`是内联元素

生成:

span是内联元素

如果要在代码区段内插入反引号,可以用多个反引号来开启和结束代码区段:

``(`)``

生成:

(`)

代码区段的起始和结束端都可以放入一个空白,这样就可以在区段的一开始就插入反引号:

`` ` ``

生成:

`

在代码区段里,&和方括号会被自动转成html实体,方便插入html原始码,如:

这是一个`<span>`标签

生成:

这是一个<span>标签

图片

跟链接一样,分为行内式参考式

行内式的看起来是这样的:

![Alt text](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "optional title")

详述如下:

  • 一个惊叹号!
  • 接着一个方括号,里面放上图片的替代文字
  • 接着一个小括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的’title’文字。

参考式的图片语法像这样:

![Alt text][id]

id是图片参考的名称,图片参考的定义方式和链接参考一样:

[id]: url/to/image "optional title attribute"

到目前为止,markdown还没有办法指定图片的宽高,如果需要的话,可以使用普通的<img>标签。

其它

自动链接

markdown支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来,markdown就会自动把它转成链接。如:

<http://www.iwhynot.me>

生成:

http://www.iwhynot.me

邮件的自动链接也很类似,只是markdown会先做一个编码转换的过程,把文字字符转成16进位码的html实体,以糊弄一些不好的邮址收集机器人,如:

<address@example.com>

生成:

address@example.com

反斜杠

markdown可以利用反斜杠来插入一些在语法中有其它意义的符号,如:

\*本来是强调的星号\*

生成:

*本来是强调的星号*

markdown支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

\ 反斜线
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 括弧
# 井号
+ 加号
- 减号
. 英文点号
! 惊叹号

OK,就这些了,参考Markdown中文版语法说明