--- language: markdown contributors: - ["Dan Turkel", "http://danturkel.com/"] translators: - ["Fangzhou Chen","https://github.com/FZSS"] filename: learnmarkdown-cn.md lang: zh-cn --- Markdown 由 John Gruber 于 2004年创立. 它旨在成为一门容易读写的语法结构,并可以便利地转换成 HTML(以及其他很多)格式。 在不同的解析器中,Markdown 的实现方法有所不同。 此教程会指出哪些特征是通用,哪一些只对某一解析器有效。 - [HTML标签](#html-elements) - [标题](#headings) - [文本样式](#simple-text-styles) - [段落](#paragraphs) - [列表](#lists) - [代码块](#code-blocks) - [水平线分隔](#horizontal-rule) - [链接](#links) - [图片](#images) - [杂项](#miscellany) ## HTML标签 Markdown 是 HTML 的父集,所以任何 HTML 文件都是有效的 Markdown。 ```md ``` ## 标题 通过在文本前加上不同数量的hash(#), 你可以创建相对应的 `

` 到 `

` HTML元素。 ```md # 这是一个

## 这是一个

### 这是一个

#### 这是一个

##### 这是一个

###### 这是一个
``` 对于 `

` 和 `

` 元素,Markdown 额外提供了两种添加方式。 ```md 这是一个 h1 ============= 这是一个 h2 ------------- ``` ## 文本样式 文本的斜体,粗体在 Markdown 中可以轻易实现。 ```md *此文本为斜体。* _此文本也是。_ **此文本为粗体。** __此文本也是__ ***此文本是斜体加粗体。*** **_或者这样。_** *__这个也是!__* ``` GitHub 也支持 Markdown,在 GitHub 的 Markdown 解析器中,我们可以使用删除线: ```md ~~此文本为删除线效果。~~ ``` ## 段落 Paragraphs are a one or multiple adjacent lines of text separated by one or multiple blank lines. 段落由一个句子或是多个中间没有空行的句子组成,每个段落由一个或是多个空行分隔开来。 ```md 这是第一段落. 这句话在同一个段落里,好玩么? 现在我是第二段落。 这句话也在第二段落! 这句话在第三段落! ``` 如果你插入一个 HTML中的
标签,你可以在段末加入两个以上的空格,然后另起一段。 (译者注:试了一下,很多解析器,并不需要空两个空格,直接换行就会添加一个`
`) ```md 此段落结尾有两个空格(选中以显示)。 上文有一个
! ``` 段落引用可由 `>` 字符轻松实现。 ```md > 这是一个段落引用。 你可以 > 手动断开你的句子,然后在每句句子前面添加 `>` 字符。或者让你的句子变得很长,以至于他们自动得换行。 > 只要你的文字以 `>` 字符开头,两种方式无异。 > 你也可以对文本进行 >> 多层引用 > 这多机智啊! ``` ## 列表 无序列表可由星号,加号或者减号来创建 ```md * 项目 * 项目 * 另一个项目 或者 + 项目 + 项目 + 另一个项目 或者 - 项目 - 项目 - 最后一个项目 ``` 有序序列可由数字加上点 `.` 来实现 ```md 1. 项目一 2. 项目二 3. 项目三 ``` 即使你的标签数字有误,Markdown 依旧会呈现出正确的序号, 不过这并不是一个好主意 ```md 1. 项目一 1. 项目二 1. 项目三 ``` (此段与上面一模一样) 你也可以使用子列表 ```md 1. 项目一 2. 项目二 3. 项目三 * 子项目 * 子项目 4. 项目四 ``` 你甚至可以使用任务列表,它将会生成 HTML 的选择框(checkboxes)标签。 ```md 下面方框里包含 'x' 的列表,将会生成选中效果的选择框。 - [ ] 任务一需要完成 - [ ] 任务二需要完成 下面这个选择框将会是选中状态 - [x] 这个任务已经完成 ``` ## 代码块 代码块(HTML中 标签)可以由缩进四格(spaces) 或者一个制表符(tab)实现 ```md This is code So is this ``` 在你的代码中,你仍然使用tab(或者四个空格)可以进行缩进操作 ```md my_array.each do |item| puts item end ``` 内联代码可由反引号 ` 实现 ```md John 甚至不知道 `go_to()` 方程是干嘛的! ``` 在GitHub的 Markdown(GitHub Flavored Markdown)解析器中,你可以使用特殊的语法表示代码块
```ruby
def foobar
    puts "Hello world!"
end
```
以上代码不需要缩进,而且 GitHub 会根据\`\`\`后指定的语言来进行语法高亮显示 ## 水平线分隔 Horizontal rules (`
`) are easily added with three or more asterisks or hyphens, with or without spaces. 水平线可由三个或以上的星号或是减号创建,它们之间可以带或不带空格 ```md *** --- - - - **************** ``` ## 链接 Markdown 最棒的地方就是便捷的书写链接。把链接文字放在中括号[]内, 在随后的括弧()内加入url就可以了。 ```md [点我点我!](http://test.com/) ``` You can also add a link title using quotes inside the parentheses. 你也可以为链接加入一个标题:在括弧号内使用引号 你也可以在小括号内使用引号,为链接加上一个标题(title) ```md [点我点我!](http://test.com/ "连接到Test.com") ``` 相对路径也可以有 ```md [去 music](/music/). ``` Markdown同样支持引用形式的链接
[点此链接][link1] 以获取更多信息!
[看一看这个链接][foobar] 如果你愿意的话。

[link1]: http://test.com/ "Cool!"
[foobar]: http://foobar.biz/ "Alright!"
对于引用形式,链接的标题可以处于单引号中,括弧中或是忽略。引用名可以在文档的任意何处, 并且可以随意命名,只要名称不重复。 “隐含式命名” 的功能可以让链接文字作为引用名
[This][] is a link.

[this]: http://thisisalink.com/
但这并不常用 ## 图片 图片与链接相似,只需在前添加一个感叹号 ```md ![这是我图片的悬停文本(alt text)](http://imgur.com/myimage.jpg "可选命名") ``` 引用形式也同样起作用
![这是我的悬停文本.][myimage]

[myimage]: relative/urls/cool/image.jpg "在此输入标题"
## 杂项 ### 自动链接 ```md 与 [http://testwebsite.com/](http://testwebsite.com/) 等同 ``` ### 电子邮件的自动链接 ```md ``` ### 转义字符 ```md 我希望 *将这段文字置于星号之间* 但是我不希望它被 斜体化, 这么做: \*这段置文字于星号之间\*。 ``` ### 键盘上的功能键 In GitHub Flavored Markdown, you can use a `` tag to represent keyboard keys. 在 GitHub 的 Markdown中,你可以使用 `` 标签来表示功能键。 ```md 你的电脑死机了?试试 Ctrl+Alt+Del ``` ### 表格 表格只被 GitHub 的 Markdown 支持,并且有一点笨重,但如果你真的要用的话: (译者注:其实现在大部分markdown都已经支持) ```md | 第一列 | 第二列 | 第三列 | | :--------- | :------: | ----------: | | 左对齐 | 居个中 | 右对齐 | | 某某某 | 某某某 | 某某某 | ``` 或者, 同样的 ```md 第一列 | 第二列 | 第三列 :-- | :-: | --: 这太丑了 | 药不能 | 停 ``` 更多信息, 请于[此处](http://daringfireball.net/projects/Markdown/syntax)参见 John Gruber 关于语法的官方帖子,及于[此处](https://github.com/adam-p/Markdown-here/wiki/Markdown-Cheatsheet) 参见 Adam Pritchard 的摘要笔记。