GitHub支持的Markdown语法,简称GFM。相比标准的Markdown(SM)语法,有少数几个区别,并添加了新的功能。
本位参考 GitHub Flavored Markdown 撰写。有兴趣的话可以看原文。
与标准Markdown的区别
对文本中下划线的处理方式不同
标准Markdown语法会把两个下划线 _
之间的文本转换为斜体。GFM中会忽略这种语法设置。如果需要设置斜体,建议使用 *
实现。注意仅仅是单个下划线的情况下,多个下划线的语法还是正常的。比如下面单词:
wow_great_stuff
do_this_and_do_that_and_another_thing
URL自动链接
GFM中支持标准URL的自动链接,不需要使用标准Markdown的URL超链接语法。比如,输入下面URL
自动显示为
http://example.com
支持删除线
GFM中添加了支持删除文本的语法,使用两个波浪线包含的文本,会自动添加删除线。(波浪线在键盘中没有直接输入的符号,所以慎用!)
比如,输入下面文本:
Strike Through
显示效果如下:
Strike Through
代码块包含语法
标准Markdown语法使用行开始四个空格表示引用代码块。GFM添见了新的代码块引用语法。只要使用 ```
包含对应的代码块就可以实现代码引用。(相比标准的用法,这样可以避免代码对齐和空格输入的麻烦。)
比如,
```
int test(void)
{
int m = 0;
}
```
效果如下:
int test(void)
{
int m = 0;
}
支持语法高亮
GFM的代码块支持语法高亮,只需要在 ```c++
(代码块起始后面加上语言名称即可)。比如下面效果是可以实现的。
#include <iostream>
int main(int argc, char * argv[])
{
int i = 0;
std::cout << i << std::endl;
return 0;
}
表格创建
可以使用连字符 -
来表示表格的第一行,可以用管道符 |
表示表格的列。如下语法:
First Header | Second Header |
---|---|
content cell | content cell |
content cell | content cell |
显示效果如下:
First Header | Second Header |
---|---|
content cell | content cell |
content cell | content cell |
当然,实际使用中可以不用考虑表格每一行的字符对齐的要求。
比如下面这种语法也是可以的:
Name | Description |
---|---|
Help | Display the help window. |
Close | Closes a window |
效果如下:
Name Description Help Display the help window. Close Closes a window
表格单元项中也可以包含其他模块,比如超链接、斜体、加粗、删除线等。
也可以使用冒号 :
表示表格中单元格的对齐方式。如下语法:
Left-Aligned | Center Aligned | Right Aligned |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
显示效果如下:
Left-Aligned | Center Aligned | Right Aligned |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
冒号位于左边表示当前列左对齐显示,冒号位于右边表示当前列右对齐显示,冒号在两边各一个,表示居中显示。
任务列表
任务列表是在列表上添加[]、[x](分别表示未完成、完成状态)。输入下面文本:
- [x] @mentions, #refs, [links](), **formatting**, and <del>tags</del> are supported
- [x] list syntax is required (any unordered or ordered list supported)
- [x] this is a complete item
- [ ] this is an incomplete item
显示效果是这样的:
- [x] @mentions, #refs, links, formatting, and
tagsare supported - [x] list syntax is required (any unordered or ordered list supported)
- [x] this is a complete item
- [ ] this is an incomplete item
任务列表支持嵌套,但建议嵌套层数不超过2层。
参考资料
附件说明
鉴于博客园的markdown客户端渲染效果比较差,有兴趣的可以直接到参考资料中查看实际渲染效果。