Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。
使用 Markdown 的优点:
- 专注你的文字内容而不是排版样式。
- 轻松的导出 HTML、PDF 和本身的 .md 文件。
- 纯文本内容,兼容所有的文本编辑器与字处理软件。
- 可读,直观。适合所有人的写作语言。
Markdown语法
标题
两种形式:
1)使用=和-标记一级和二级标题。
一级标题
======
二级标题
------
效果:
一级标题
二级标题
2)使用#,可表示1-6级标题。
#一级标题
##二级标题
###三级标题
####四级标题
#####五级标题
######六级标题
效果:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
段落
段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上的空格加上回车(引用中换行省略回车)。
区块引用
在段落的每行或者只在第一行使用符号>,还可以使用多个嵌套引用,如:
>区块引用
>>嵌套引用
效果:
区块引用
嵌套引用
列表
Markdown 支持有序列表和无序列表。
1). 无序列表使用星号、加号或是减号作为列表标记:
// 方式一
* Red
* Green
* Blue
// 方式二
+ Red
+ Green
+ Blue
// 方式三
- Red
- Green
- Blue
效果:
- Red
- Green
- Blue
2). 有序列表则使用数字接着一个英文句点:
1. Bird
1. McHale
1. Parish
3. Bird
1. McHale
8. Parish
效果:
- Bird
- McHale
- Parish
- Bird
- McHale
- Parish
代码区块
1). <pre> 和 <code>
和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown 会用 <pre> 和 <code> 标签来把代码区块包起来。
<pre><code>
function main() {
printf("Hello,Markdown.");
}
</code></pre>
效果:
<pre><code>
function main() {
printf("Hello,Markdown.");
}
</code></pre>
2). 用<code>```</code>包起来
把代码块用<code>```</code>包起来,后面跟使用的语言,如:javascript、java、css等。
<code>
```javascript
function main() {
printf("Hello,Markdown.");
}
```
</code>
效果:
function main() {
printf("Hello,Markdown.");
}
Ruby代码例子:
分隔线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
* * *
***
*****
- - -
---------------------------------------
效果:
链接
Markdown 支持两种形式的链接语法: 行内式和参考式两种形式。不管是哪一种,链接文字都是用 [方括号] 来标记。
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
效果:
This is an example inline link.
This link has no title attribute.
强调
Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 <em> 标签包围,用两个 * 或 _ 包起来的话,则会被转成 <strong>,例如:
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
**加粗文本** 或者 __加粗文本__
*斜体文本* 或者_斜体文本_
~~删除文本~~
效果:
single asterisks
single underscores
double asterisks
double underscores
加粗文本 或者 加粗文本
斜体文本 或者斜体文本
删除文本
代码
如果要标记一小段行内代码,你可以用反引号把它包起来(`),例如:
Use the `printf()` function.
Use the <code>printf()</code> function.
效果:
Use the
printf()
function.
Use the <code>printf()</code> function.
图片
很明显地,要在纯文字应用中设计一个「自然」的语法来插入图片是有一定难度的。
![](/path/to/img.jpg)
![](/path/to/img.jpg "Optional title")
效果:
自动链接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
<http://example.com/>
效果:
反斜杠
Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 <em> 标签),你可以在星号的前面加上反斜杠:
\*literal asterisks\*
效果:
*literal asterisks*
Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:
\\ 反斜线
\` 反引号
\* 星号
\_ 底线
\{\} 花括号
\[\] 方括号
\(\) 括弧
\# 井字号
\+ 加号
\- 减号
\. 英文句点
\! 惊叹号
效果:
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号
表格
表格对齐格式
- 居左::----
- 居中::----:或-----
- 居右:----:
例子1:
学号|姓名|分数
-|-|-
小明|男|75
小红|女|79
小陆|男|92
效果:
学号 | 姓名 | 分数 |
---|---|---|
小明 | 男 | 75 |
小红 | 女 | 79 |
小陆 | 男 | 92 |
例子2:
|标题|标题|标题|
|:---|:---:|---:|
|居左测试文本|居中测试文本|居右测试文本|
|居左测试文本1|居中测试文本2|居右测试文本3|
|居左测试文本11|居中测试文本22|居右测试文本33|
|居左测试文本111|居中测试文本222|居右测试文本333|
效果:
标题 | 标题 | 标题 |
---|---|---|
居左测试文本 | 居中测试文本 | 居右测试文本 |
居左测试文本1 | 居中测试文本2 | 居右测试文本3 |
居左测试文本11 | 居中测试文本22 | 居右测试文本33 |
居左测试文本111 | 居中测试文本222 | 居右测试文本333 |
脚注(注解)
使用[^]来定义脚注:
这是一个脚注的例子[1]
[1]: 这里是脚注
效果:
这是一个脚注的例子[1]
[1]: 这里是脚注
下划线
<u>下划线文本</u>
效果:
<u>下划线文本</u>