markdown 语法简介

Markdown是用于书写纯文本文件的语言,通过一些特殊标记使文本更加容易读,而且兼容HTML。
如果想看本文的例子,可以将代码块中的文字复制到在线 Markdown 编译器来查看效果
本文是我在使用Markdown时所作的总结,更详细的Markdown语法请看Markdown 语法说明 (简体中文版)



标题

这样表示H1
=========

# 这也可以表示H1

这表示H2
-------

## 这也是H2 ##

### H3 后面放几个`#`都无所谓

#### H4 H1~H6 都可以用`#`方式来表达

分割线

一行中用三个以上的星号、减号、底线都能建立一个分隔线,行内可以有空格,但不能有其他东西。如下均可以:

* * *  
***
*****
- - -
----------------------------------------
______

段落和换行

文字前后要有一个以上的空行才会产生段落,文本中的换行并不会产生换行符<br />,如果要强制产生换行符<br />的话,可以在行末尾加两个空格。如下:

这样是不产
生换行的

如果在末尾加两个空格  
就会强制换行

代码

代码分为行内的代码(如printf())和代码块,建立代码块需要将代码块缩紧4个空格或一个tab键,行内代码可通过反引号`实现。如下:

这是普通段落

    这是代码块

这是行内代码`printf()`

如果行内代码本身包含反引号,可以使用多个反引号来开启和关闭代码块,  
如:`` `foo` ``,为了能正确表示一开始就有反引号的情况,中间的内容要用空格隔开。

引用

在行首添加>表示引用,如下:

> 行首加引用
>
> 也可以偷懒,只在每
一段的开头加一个也可以
>
> 还能嵌套引用
>
> > 嵌套引用  
>
> ### 里面还能写其他的markdown语法
>
>     printf("代码区块也可以");

列表

Markdown 支持有序列表和无序列表,无需列表会转换成html中的<ul>,有序列表会转换成html中的<ol>

无序列表使用星号、加号或是减号作为列表标记,标记与内容间至少有一个空格,如:

*   Red
*   Green
+   Blue
-   Yello

有序列表则使用数字接着一个英文句点,如:

1.  Bird
2.  McHale
3.  Parish
9.  数字的序号是无所谓的

链接

链接语法包括行内式和参考式两种形式
行内式的链接,链接文字都是用 [方括号] 来标记, 如:

这是个链接[百度](http://www.baidu.com #maodian)
这是个链接[百度](http://www.baidu.com "Title")

参考式是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里填入用以辨识链接的标记(不区分大小写),如:

这是[百度][1]  
这是[谷歌][2]

[1]: http://www.baidu.com "Optional Title Here"
[2]: http://www.google.com "Optional Title Here"

其内容定义的形式为:

  • 方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
  • 接着一个冒号
  • 接着一个以上的空格或制表符
  • 接着链接的网址
  • 选择性地接着 title 内容,可以用双引号或是括弧包着

强调

Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 *_ 包围的字词会被转成用 <em> 标签包围, 用两个 *_ 包起来的话,则会被转成 <strong>
如果 *_ 两边都有空白的话,它们就只会被当成普通符号。
如果要在文字前后直接插入普通的星号或底线,就需要用反斜线来转义。


图片

图片跟链接很类似,同样分为行内式和参考式。只是比链接前面多了一个!,如:

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

自动链接

Markdown 支持以比较简短的自动链接形式来处理网址电子邮箱,只要用尖括号包起来。

网址的链接文字就和链接地址一样,例如:

<http://example.com/>

Markdown 会转为:

<a href="http://example.com/">http://example.com/</a>

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

<address@example.com>

Markdown 会转成:

<a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>

这段字(其实是 <a href="mailto:address@example.com">address@example.com</a>) 会变成一个可以点击的「address@example.com」链接。 貌似邮件自动链接在开始提到的在线 Markdown 编译器中不起作用