Closed mrbone closed 6 years ago
使用 markdown 写文章很久了,每次忘了语法都是直接google,却一直没有真正系统性的学习markdown的语法细节。
markdown 常用的引擎有 GFM
和 redcarpet
两种,目前使用比较广泛的是 GFM
,因为github这个最大的同性交友网站。以下是一些常用的 GFM
语法。
标题有两种格式,settext
和 atx
形式。
settext
形式以 =
换行表示一级标题,-
换行表示二级换行
atx
则是以1到6个 #
表示一到六级标题。
实际使用中我们更多的使用 atx
形式。
单行文本
多行文本以两个换行分隔
但是这个换行会插入一个空行,所以还有另外一种换行的方式在换行之前增加两个空格
之后的换行就不会插入空行。
以四个空格或者一个Tab开头的文本
多行文本块
和但行一样,只是每行文字都是以四个空格或者tab开头
区块引用使用 >
开头。
我是一个引用
我是引用的第二行,上面接了一个空行
这是一个嵌入在引用中的二级标题
修辞和强调以 *
或者 _
包裹文本。
很奇怪的一点是_
包裹的文本不能和普通文本同时出现,否则就失效了
*斜体*
表示一个斜体
_斜体_
斜体
_斜体_
失效的斜体
**粗体**
表示一个粗体
__粗体__
粗体
__粗体__
失效的粗体
以+
,*
,-
打头的文本会转换为无序列表
无序列表
无序列表
列表
链接分行内链接
和参考链接
两种
[文本](链接url "title")
[文本](参考标识)
![alt text](url "title")
图片语法和链接类似,也有行内图片
和参考图片
两种
行内: `![ramdom pic](https://pbs.twimg.com/profile_images/722399596224258049/ywBKj6en.jpg "random pic")`
参考: `![ramdom pic][pic]`
以一对三个反引号包裹的代码,代码类型声明在反引号之后。
var a = 1;
alert(a);
<body>
<!-->annotation<-->
<div id="app"></div>
</body>
直接输入html内容,markdown并不会将其做转换,而是直接输出html内容。
<table>
<tr>
<td>Foo</td>
</tr>
</table>
输出:
Foo |
| 表头1 | 表头2 |
| ----- | ----- |
|表格内容1|表格内容2|
表头1 | 表头2 |
---|---|
表格内容1 | 表格内容2 |
表格列可以调整居文字排列方式
| 表头1 | 表头2 | 表头3|
| :---- | :---: | ---: |
|居左|居中|居右|
表头1 | 表头2 | 表头3 |
---|---|---|
居左 | 居中 | 居右 |
要想插入|
符号则需要在前面插入\
转义
| 表头1 | 表头2 | 表头3|
| :---- | :---: | ---: |
|居左|居中|\||
表头1 | 表头2 | 表头3 |
---|---|---|
居左 | 居中 | \ |
```diff
+ alert('a')
- alert('b')
```
+ alert('a')
- alert('b')
语法 排版指北 writing-on-github