Markdown 由 John Gruber 于 2004年创立. 它旨在成为一门容易读写的语法结构,并可以便利地转换成 HTML(以及其他很多)格式。
在不同的解析器中,Markdown 的实现方法有所不同。 此教程会指出哪些特征是通用,哪一些只对某一解析器有效。
HTML标签
Markdown 是 HTML 的父集,所以任何 HTML 文件都是有效的 Markdown。
<!--这意味着我们可以在 Markdown 里使用任何 HTML 元素,比如注释元素, 且不会被 Markdown 解析器所影响。不过如果你在 Markdown 文件内创建了 HTML 元素, 你将无法在 HTML 元素的内容中使用 Markdown 语法。-->
标题
通过在文本前加上不同数量的hash(#), 你可以创建相对应的
<h1>
到 <h6>
HTML元素。# 这是一个 <h1> ## 这是一个 <h2> ### 这是一个 <h3> #### 这是一个 <h4> ##### 这是一个 <h5> ###### 这是一个 <h6>
实际效果(最终显示时会因设置而看起来不同):
这是一个
这也是一个
这还是一个
这依旧是一个
这真的是一个
这…是一个
对于
<h1>
和 <h2>
元素,Markdown 额外提供了两种添加方式。这是一个 h1 ============= 这是一个 h2 -------------
文本样式
文本的斜体,粗体在 Markdown 中可以轻易实现。
*此文本为斜体。* _此文本也是。 _**此文本为粗体。** __此文本也是__ ***此文本是斜体加粗体。*** **_或者这样。_** *__这个也是!__*
GitHub 也支持 Markdown,在 GitHub 的 Markdown 解析器中,我们可以使用~~删除线~~:
~~此文本为删除线效果。~~
段落
段落由一个句子或是多个中间没有空行的句子组成,每个段落由一个或是多个空行分隔开来。 (注:部分解析器有无需空行就能换行的设置,这个主要看个人喜好)
这是第一段落. 这句话在同一个段落里,好玩么? 现在我是第二段落。 这句话也在第二段落! 这句话在第三段落!
如果你想插入一个
<br />
标签,你可以在段末加入两个以上的空格,然后另起一 段。(译者注:试了一下,很多解析器,并不需要空两个空格,直接换行就会添加一个
<br />
)此段落结尾有两个空格(选中以显示)。 上文有一个 <br /> !
段落引用可由
>
字符轻松实现。对的很轻松
> 这是一个段落引用。 你可以 > 手动断开你的句子,然后在每句句子前面添加 `>` 字符。或者让你的句子变得很长,以至于他们自动得换行。 > 只要你的文字以 `>` 字符开头,两种方式无异。 > 你也可以对文本进行 >> 多层引用 > 这多机智啊!
列表
- 无序列表可由星号,加号或者减号来创建
* 项目 * 项目 * 另一个项目 或者 + 项目 + 项目 + 另一个项目 或者 - 项目 - 项目 - 最后一个项目
有序序列可由数字加上点
.
来实现1. 项目一 2. 项目二 3. 项目三
即使你的数字标签有误,Markdown 依旧会呈现出正确的序号, 不过这并不是一个好主意
1. 项目一 1. 项目二 1. 项目三
(此段与上面效果一模一样)
你也可以使用子列表
1. 项目一 2. 项目二 3. 项目三 * 子项目 * 子项目 4. 项目四
你甚至可以使用任务列表,它将会生成 HTML 的选择框(checkboxes)标签。
下面方框里包含 'x' 的列表,将会生成选中效果的选择框。 - 任务一需要完成 - 任务二需要完成 下面这个选择框将会是选中状态 - 这个任务已经完成
你看完了这个任务(注:此选择框是无法直接更改的,即禁用状态。)
代码块
代码块(HTML中
<code>
标签)可以由缩进四格(spaces) 或者一个制表符(tab)实现This is code So is this
在你的代码中,你仍然使用tab(或者四个空格)可以进行缩进操作
my_array.each do |item| puts item end
内联代码可由反引号 ` 实现
John 甚至不知道 `go_to()` 函数是干嘛的!
在GitHub的 Markdown(GitHub Flavored Markdown)解析器中,你可以使用特殊的语法表示代码块
```ruby def foobar puts "Hello world!" end ```
以上代码不需要缩进,而且 GitHub 会根据`“后指定的语言来进行语法高亮显示
水平线分隔
水平线(
<hr/>
)可由三个或以上的星号或是减号创建,它们之间可以带或不带空格*** --- - - - **************** 下面这个就是示例
链接
Markdown 最棒的地方就是便捷的书写链接。把链接文字放在中括号[]内, 在随后的括弧()内加入url就可以了。
[点我点我!](http://test.com/)
你也可以在小括号内使用引号,为链接加上一个标题(title)
[点我点我!](http://test.com/ "连接到Test.com")
相对路径也可以有
[去 music](/music/).
Markdown同样支持引用形式的链接
[点此链接][link1] 以获取更多信息! [看一看这个链接][foobar] 如果你愿意的话。
对于引用形式,链接的标题可以处于单引号中,括弧中或是忽略。引用名可以在文档的任何地方,并且可以随意命名,只要名称不重复。
“隐含式命名” 的功能可以让链接文字作为引用名
[This][] is a link.
但这并不常用
图片
图片与链接相似,只需在前添加一个感叹号
![这是alt,请把鼠标放在图片上](http://imgur.com/myimage.jpg "这是title")
引用形式也同样起作用
![这是alt][myimage]
杂项
自动链接
<http://testwebsite.com/> 与 [http://testwebsite.com/](http://testwebsite.com/) 等同
电子邮件的自动链接
<foo@bar.com>
转义字符
我希望 *将这段文字置于星号之间* 但是我不希望它被 斜体化, 这么做: \*这段置文字于星号之间\*。
对比一下:将这段文字置于星号之间 和 *将这段文字置于星号之间*
键盘上的功能键
在 GitHub 的 Markdown 中,你可以使用
<kbd>
标签来表示功能键。你的电脑死机了?试试 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd>
Ctrl+Alt+Del
(译注:可能由于网站本身样式问题,效果不明显)
表格
下面示例的表格长这样:
工整一点的写法是这样的:
| 第一列 | 第二列 | 第三列 | | :----------- | :-------: | ----------: | | 我是左对齐 | 居个中 | 右对齐 | | 注意 | 冒 | 号 |
好吧,强行对齐字符是很难的。但是,至少比下面这种写法好一点——
我是超级超级长的第一列 | 第二列 | 第三列 :-- | :-: | --: 这真的太丑了 | 药不能 | 停!!!!
真的是看着令人头晕