一、标题
#标题:表示一级标题
##标题:表示二级标题
###标题:表示三级标题
####标题:表示四级标题
依此类推
快捷键:Ctrl+H,默认产生二级标题。
二、列表
2.1、无序列表
最多能够构造两层的无序列表。第一层无序列表以“-+空格”为开头,第二层无序列表以“空格+-+空格”为开头。注意,空格数量大于1跟空格数量为1的最终效果是一致的。
快捷键:Ctrl+U,只能产生第一层无序列表。
2.2、有序列表
跟无序列表类似。最多能够构造两层的有序列表。第一层有序列表以“数字+.+空格”为开头,第二层有序列表以“空格+数字+.+空格”为开头。注意,空格数量大于1跟空格数量为1的最终效果是一致的。另外,有序列表最终的序号自动产生,跟上述的“数字”没有一一对应关系。
快捷键:Ctrl+O,只能产生第一层有序列表。
三、引用
以“>”符号开头,表示后面的文字是引用。
快捷键:Ctrl+Q
四、粗体和斜体
在文字两端加“**”,该段文字就会被加粗;在文字两端加“*”,那么该段文字会被倾斜;在文字两端加“***”,那么该段文字既会被加粗,也会被倾斜。
加粗快捷键:Ctrl+B
倾斜快捷键:Ctrl+I
五、链接与图片
5.1、链接
“[]”之间是需要添加链接的文字,“()”之间是链接地址。比如谷歌。
快捷键:Ctrl+L
5.2、图片
“![]”之间是图片描述文字,“()”之间是链接地址。
快捷键:Ctrl+G
六、代码块
6.1、行内代码块
两个反引号(即` `)之间的文字被认为是代码片段。比如:行内有代码System.out.println("Hello World")
。
6.2、整段代码块
以“` ` `”为开始(即3个反引号),以“` ` `”为结尾(即3个反引号),中间的文字被认为是代码片段。且在开始的“` ` `”之后,可以增加程序设计语言的名称,比如“java”,用来表示接下来的代码使用该语言编写。
比如:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
快捷键:Ctrl+K
七、分割线与删除线
7.1、分割线
“一个空行”加上“连续3个以上的减号符号(即—)”的组合,使得得到一个分割线。
快捷键:Ctrl+R
7.2、删除线
以“~~”为开始(即两个“~”符号),以“~~”为结尾(即两个“~”符号),中间的文字被认为是待删除文字。
八、表格
使用“|”符号隔开不同列,第一行作为列名行,第二行必须为一个格式控制行,表明整个内容以表格形式展示。格式控制行最简单的样式如“|-|-|-|”所示,这表示以3列的形式展示表格。在“-”的左边加“:”(即“:-”),表示单元格的内容左对齐;在“-”的右边加“:”(即“-:”),表示单元格的内容右对齐;在“-”的两边加“:”(即“:-:”),表示单元格的内容居中对齐。
比如现在有如下内容:
| Tables | Are | Cool |
|:-:|:-:| :-:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
最终展示效果如下:
Tables | Are | Cool |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
九、预格式化文本
以Tab键或者4个空格开头的行文本被认为已经完成格式化,其中包含的控制字符不再被解析成控制字符。
备注:有些情况下,按下Tab键,文本并没有缩进应该缩进的距离。此时,预格式化文本这个功能也不能正常完成。解决方案是“在文本上方增加一个空白行”,例子可见“八、表格”。
十、文字颜色
可以使用HTML标签来设置文字的颜色,比如使用如下语句片段:
<font color='red'>Text</font>
最后,在页面中会显示“Text”文字,文字颜色为红色。
十一、LaTex数学公式
待学
十二、UML图
12.1、序列图
可以使用如下形式来画序列图:
```sequence
符合序列图语法的代码块
```
关于序列图语法如图1所示。
图1
以下例子涉及到了所有语法:
title:grammer example
participant dslztx
A->B:up
A->>C:up up
A-->D:up up up
A-->>E:must up
note left of A:you are behind
note right of D:work hard
note over B:you don't belong here
note over B,C:you deserve more
最后效果如图2所示。
图2
12.2、流程图
可以使用如下形式来画流程图:
```flow
符合流程图语法的代码块
```
关于流程图语法介绍如下:
1、元素名=>元素类型: [注意前面有个空格]元素展示文本:>超链接
表示对某种元素类型对象的定义。比如有st=>start: Start:>http://www.google.com
,表示现有一个元素类型为“start”的对象,名称为“st”,它的展示文本为“Start”,单击它能够连接到“http://www.google.com”。
最后的效果如图3所示。
图3
2、元素名->元素名->元素名…
表示将元素名表示的元素对象串联起来。比如有st-op1-cond
,就是表示将“st”表示的元素对象和“op1”表示的元素对象串联起来,另外将“op1”表示的元素对象与“cond”表示的元素对象串联起来。
可以在所有元素名右侧放置一个括号,括号内的值可以是“right”或者“left”,当值为“right”时,表示从右侧与接下来的元素对象串联;当值为“left”时,表示从左侧与接下来的元素对象串联。
另外当元素类型为“condition”时,可以在元素名右侧放置一个括号,括号内的值可以是“yes”或者“no”,它表示当条件判断结果为“yes”时,串联到某个元素对象;当条件判断结果为“no”时,串联到另外某个元素对象。当“yes/no”与“right/left”一起出现时,两者放置在同一个括号内使用逗号隔开,且“right/left”放置在“yes/no”的右侧。
接下来举两个例子。
1、例子1
代码块如下:
st=>start: Start:>http://www.google.com
e=>end: End:>http://www.google.com
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes
or No?:>http://www.google.com
io=>inputoutput: catch something
st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1
效果如图4:
图4
2、例子2
代码块如下:
st=>start: Start:>http://www.google.com
e=>end: End:>http://www.google.com
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes
or No?:>http://www.google.com
io=>inputoutput: catch something
st->op1->cond
cond(yes,right)->io->e
cond(no)->sub1(right)->op1
效果如图5:
图5
十三、对齐文本
使用如下语法来对齐文本,该语法来自HTML,不是Markdown原生语法:
<div align='left|center|right'>to align text</div>
十四、其他
编写MD文件统一规范:
代码块前后空两行
表格前后空两行
图前后空两行
有序列表前后空两行
备注:
有时候要输出控制符号本身(常见的控制符号有“* # / ( ) [ ] < >”),可以使用“\”符号进行转义,比如“\##”会显示“##”。
参考文献:
[1]:http://sourceforge.net/p/tilde/wiki/markdown_syntax/
[2]:http://genius.com/3057216
[3]:https://ia.net/writer/support/general/markdown-guide
[4]:CSDN Markdown语言帮助文档
[5]:http://*.com/questions/19746350/how-does-one-change-color-in-markdown-cells-ipython-notebook
[6]:http://bramp.github.io/js-sequence-diagrams/
[7]:http://adrai.github.io/flowchart.js/