Markdown 由 John Gruber 于 2004年创立. 它旨在成为一门容易读写的语法结构,并可以便利地转换成 HTML(以及其他很多)格式。

在不同的解析器中,Markdown 的实现方法有所不同。 此教程会指出哪些特征是通用,哪一些只对某一解析器有效。

HTML标签

Markdown 是 HTML 的父集,所以任何 HTML 文件都是有效的 Markdown。

标题

通过在文本前加上不同数量的hash(#), 你可以创建相对应的 <h1><h6> HTML元素。

实际效果(最终显示时会因设置而看起来不同):

这是一个

这也是一个

这还是一个

这依旧是一个

这真的是一个
这...是一个

对于 <h1><h2> 元素,Markdown 额外提供了两种添加方式。

文本样式

文本的斜体粗体在 Markdown 中可以轻易实现。

GitHub 也支持 Markdown,在 GitHub 的 Markdown 解析器中,我们可以使用删除线

段落

段落由一个句子或是多个中间没有空行的句子组成,每个段落由一个或是多个空行分隔开来。 (注:部分解析器有无需空行就能换行的设置,这个主要看个人喜好)

如果你想插入一个 <br /> 标签,你可以在段末加入两个以上的空格,然后另起一 段。

(译者注:试了一下,很多解析器,并不需要空两个空格,直接换行就会添加一个<br />)

段落引用可由 > 字符轻松实现。

对的很轻松

列表

有序序列可由数字加上点 . 来实现

即使你的数字标签有误,Markdown 依旧会呈现出正确的序号, 不过这并不是一个好主意

(此段与上面效果一模一样)

你也可以使用子列表

你甚至可以使用任务列表,它将会生成 HTML 的选择框(checkboxes)标签。

代码块

代码块(HTML中 <code> 标签)可以由缩进四格(spaces) 或者一个制表符(tab)实现

在你的代码中,你仍然使用tab(或者四个空格)可以进行缩进操作

内联代码可由反引号 ` 实现

在GitHub的 Markdown(GitHub Flavored Markdown)解析器中,你可以使用特殊的语法表示代码块

```ruby
def foobar
    puts "Hello world!"
end
```

以上代码不需要缩进,而且 GitHub 会根据```后指定的语言来进行语法高亮显示

水平线分隔

水平线(<hr/>)可由三个或以上的星号或是减号创建,它们之间可以带或不带空格


链接

Markdown 最棒的地方就是便捷的书写链接。把链接文字放在中括号[]内, 在随后的括弧()内加入url就可以了。

你也可以在小括号内使用引号,为链接加上一个标题(title)

相对路径也可以有

Markdown同样支持引用形式的链接

对于引用形式,链接的标题可以处于单引号中,括弧中或是忽略。引用名可以在文档的任何地方,并且可以随意命名,只要名称不重复。

“隐含式命名” 的功能可以让链接文字作为引用名

但这并不常用

图片

图片与链接相似,只需在前添加一个感叹号

引用形式也同样起作用

杂项

自动链接

电子邮件的自动链接

转义字符

对比一下:将这段文字置于星号之间*将这段文字置于星号之间*

键盘上的功能键

在 GitHub 的 Markdown 中,你可以使用 <kbd> 标签来表示功能键。

Ctrl+Alt+Del

(译注:可能由于网站本身样式问题,效果不明显)

表格

下面示例的表格长这样:

第一列第二列第三列
我是左对齐居个中右对齐
注意

工整一点的写法是这样的:

好吧,强行对齐字符是很难的。但是,至少比下面这种写法好一点——

真的是看着令人头晕

更多信息, 请于此处参见 John Gruber 关于语法的官方帖子,及于此处 参见 Adam Pritchard 的摘要笔记。