Markdown 是一种轻量级的标记语言,文本到 HTML(text-to HTML)转换工具。利用 markdown 可以用一种易读易写的纯文本格式写作,然后将其转换为结构化标记语言 XHTML/HTML。 Markdown 首要的设计目标是使其成为可读性最大并可再发行的可输入输出格式。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。Markdown 允许使用 HTML 语法,所以使用者如果需要可以直接用 HTML 来表示。
一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。
在标题文字前面插入 1 到 6 个 #,对应到标题 1 到 6 阶,例如:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown 会用 <pre> 和 <code> 标签来把代码区块包起来。
要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,而这个每行一阶的缩进(4 个空格或是 1 个制表符),都会被移除,一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。例如,下面的输入:
这是一个普通段落:
这是一个代码区块。
Markdown 会转换成:
<p>这是一个普通段落:</p>
<pre><code>这是一个代码区块。
</code></pre>
在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体。
例如一段 C 语言经典程序如下所示:
#include <stdio.h>
int main()
{
printf ("Hello, world!\n");
return 0;
}
行内代码用 ` (波浪号键下方的符号)表示。
示例:
C 语言中的打印输出函数为 `printf()` 。
显示效果为:
C 语言中的打印输出函数为 printf()
。
行首使用 > 加上一个空格表示引用段落,内部可以嵌套多个引用。
示例:
骄傲使人进步,谦虚使人退步。——我 ^_^
无序列表使用 *、+、- 后面加上空格来表示。
示例:
* 列表1
* 列表1
+ 列表1
+ 列表2
- 列表1
- 列表2
显示效果为:
列表1
列表1
列表2
列表1
有序列表使用英文数字加英文点号(句号)后面加上空格来表示。
示例:
1. 列表1
2. 列表2
显示效果为:
使用星号 * 或下划线 _ 表示强调。
示例:
单星号 = *斜体*
单下划线 = _斜体_
双星号 = **加粗**
双下划线 = __加粗__
显示效果:
单星号 = 斜体
单下划线 = 斜体
双星号 = 加粗
双下划线 = 加粗
Markdown 支持两种风格的链接:Inline 和 Reference。
Inline:以中括号标记显示的链接文本,后面紧跟用小括号包围的链接。如果链接有 title 属性,则在链接中使用空格加“title属性”。
Reference:一般应用于多个不同位置使用相同链接。通常分为两个部分,调用部分为 [链接文本][ref];定义部分可以出现在文本中的其他位置,格式为 [ref]: http://some/link/address (可选的标题)。值得注意的是在 ref 中不区分大小写。
示例:
这个一个 Inline 示例:[链接1](http://baige5117.github.io/ "可选的 title")。
这个一个 Reference 示例:[链接2][ref]。
[ref]:http://baige5117.github.io/
显示效果:
这个一个 Inline 示例:链接1。
这个一个 Reference 示例:链接2。
图片的使用方法基本上和链接类似,只是在中括号前加叹号。不过由于不能设置图片的大小和样式,所以一般直接使用 HTML 中的 img 标签。
示例:
Inline 示例:![替代文本](/images/icons/github-24.png "可选的 title")
Reference示例:![替代文本][pic]
[pic]: /images/icons/github-24.png "可选的 title"
HTML示例:<img src="/images/about.jpg" alt="替代文本" title="标题文本" width="200px" />
显示效果:
Inline 示例:
Reference示例:
HTML示例:
使用尖括号,可以为输入的 URL 或者邮箱自动创建链接。如 test@domain.com。
在一行中使用三个或三个以上的星号 *、减号 - 或下划线 _ 可以添加分隔线,其中可以有空白,但是不能有其他字符。例如:
Markdown 中存在很多特殊字符,这些特殊字符都有特定的作用,要使用这些特殊字符本身,需要使用转义字符进行转义处理,转义格式为 \特殊字符。常用的特殊字符有:
#——标题
+(或单个 *)——列表
*……*——斜体
\——转义特殊字符用
*——星号,列表,加粗或强调
`——行内代码
!——图片
-——列表
_——下划线,加粗或斜体
[、]——中括号
{、}——大括号
(、)——小括号