markdown编辑器推荐
- Typora 支持 MacOS 、Windows、Linux 平台,且包含多种主题。Typora编辑后直接渲染出效果,所见即所得。支持导出HTML、PDF、Word、图片等多种类型文件。
markdown语法(markdown syntax)
1.Markdown标题
markdown标题有两种格式,推荐第一种方法用#
表示标题。
-
使用#号可表示 1-6 级标题,一级标题对应一个
#
号,二级标题对应两个#
号,以此类推。# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题
显示效果如下
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
-
使用 = 和 - 标记一级和二级标题
我写的是一级标题 ================= 我写的是二级标题 -----------------
显示效果如下
我写的是一级标题
我写的是二级标题
2.Markdown段落格式
-
段落
在段落后面使用一个空行来表示重新开始一个新段落。
使用两个及以上空格加上回车来表示段落中的换行。
-
字体
Markdown 可以使用以下几种字体:
*斜体文本* _斜体文本_ **粗体文本** __粗体文本__ ***粗斜体文本*** ___粗斜体文本___
显示效果如下
斜体文本
斜体文本
粗体文本
粗体文本
粗斜体文本
粗斜体文本 -
分隔线
在一行中用三个以上的星号、减号、下划线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格,推荐第一种方法用3个及以上
---
来表示分割线。--- - - - ******** ** * * * _______ _ _ _
显示效果如下
-
删除线
在文字的两端加上两个波浪线 ~~ 来表示在文字上添加删除线。
~~示例文字~~
显示效果如下
示例文字 -
脚注
脚注是对文本的补充说明,导出时脚注会显示在页面末尾。
Markdown 脚注的格式如下:
示例文字[^1]。 示例文字[^注]。 示例文字[^note]。 [^1]:这是第一个脚注 [^注]:这是第二个脚注 [^note]:这是第三个脚注
显示效果如下图
3.Markdown列表
-
无序列表
无序列表使用星号(*)、加号(+)或是减号(-)作为列表标记,这些标记后面要添加一个空格,然后再填写内容。
- 第一项 - 第二项 - 第三项 * 第一项 * 第二项 * 第三项 + 第一项 + 第二项 + 第三项
显示效果如下图
- 第一项
- 第二项
- 第三项
- 第一项
- 第二项
- 第三项
- 第一项
- 第二项
- 第三项
-
有序列表
有序列表使用数字并加上 . 点来表示。
1. 第一项 2. 第二项 3. 第三项
显示效果如下
- 第一项
- 第二项
- 第三项
-
列表嵌套
列表嵌套只需在子列表中的选项前面添加四个空格即可
1. 第一项: - 第一项嵌套的第一个元素 - 第一项嵌套的第二个元素 2. 第二项: - 第二项嵌套的第一个元素 - 第二项嵌套的第二个元素
显示效果如下
- 第一项:
- 第一项嵌套的第一个元素
- 第一项嵌套的第二个元素
- 第二项:
- 第二项嵌套的第一个元素
- 第二项嵌套的第二个元素
- 第一项:
4.Markdown区块
Markdown 区块引用是在段落开头使用 > 符号 ,然后后面紧跟一个空格符号:
> 区块引用
> markdown教程
> 好好学习,天天向上。
显示效果如下
区块引用 markdown教程 好好学习,天天向上。
区块是可以嵌套的,一个 > 符号是最外层,两个 > 符号是第二层嵌套,以此类推:
> 最外层
> > 第一层嵌套
> > > 第二层嵌套
显示效果如下
最外层
第二层嵌套
第三层嵌套
5.Markdown代码
-
行内代码
如果是段落中片段的代码可以用反引号把它包起来(`),例如:
`printf()` 函数
显示效果如下
printf()
函数 -
代码区块
用 ``` 包裹一段代码,并指定一种语言(也可以不指定):
```javascript $(document).ready(function () { alert('hello'); }); ```
显示效果如下
$(document).ready(function () { alert('hello'); });
也可以使用 4 个空格或者一个**制表符(Tab 键)**来表示代码区块:
$(document).ready(function () { alert('hello'); });
显示效果如下
$(document).ready(function () { alert('hello'); });
6.Markdown链接
-
行内链接
行内链接写法为
[网站名称](网站地址 "提示文字")
这是一个链接[百度](https://www.baidu.com "百度") 或者 这是一个链接<https://www.baidu.com>
显示效果如下
这是一个链接百度
或者
这是一个链接www.baidu.com
-
高级链接
这个链接引用 1 作为网址 [百度][1] 这个链接引用 link 作为网址 [谷歌][link] 然后在文档的结尾写上引用的网址。 [1]: http://www.baidu.com/ "百度" [link]: http://www.google.com/ "谷歌"
显示结果如下图:
7.Markdown 图片
Markdown 图片语法格式如下:

也可以像网址那样对图片网址使用变量:
这个链接用 1 作为图片地址 ![百度][1].
然后在文档的结尾写上引用的图片地址。
[1]: https://www.baidu.com/favicon.ico "百度"
显示效果如下图:
8.Markdown 表格
Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。
语法格式如下:
| 表头 | 表头 |
| ---- | ---- |
| 单元格 | 单元格 |
| 单元格 | 单元格 |
显示结果如下
表头 | 表头 |
---|---|
单元格 | 单元格 |
单元格 | 单元格 |
设置表格的对齐方式:
-:
设置内容和标题栏居右对齐。:-
设置内容和标题栏居左对齐。:-:
设置内容和标题栏居中对齐。
实例如下:
| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
显示结果如下
左对齐 | 右对齐 | 居中对齐 |
---|---|---|
单元格 | 单元格 | 单元格 |
单元格 | 单元格 | 单元格 |
9.Markdown 高级技巧
-
支持的 HTML 元素
不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。
-
转义
Markdown 使用了很多特殊符号来表示特定的意义,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠转义特殊字符,Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:
\ 反斜线 ` 反引号 * 星号 _ 下划线 {} 花括号 [] 方括号 () 小括号 # 井字号 + 加号 - 减号 . 英文句点 ! 感叹号
-
公式
当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后文章页会根据需要加载 Mathjax 对数学公式进行渲染。如:
$$ \mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\ \end{vmatrix} ${$tep1}{\style{visibility:hidden}{(x+1)(x+1)}} $$
显示结果如下
-
画流程图、时序图(顺序图)、甘特图
-
横向流程图源码格式:
```mermaid graph LR A[方形] -->B(圆角) B --> C{条件a} C -->|a=1| D[结果1] C -->|a=2| E[结果2] F[横向流程图] ```
效果图如下:
graph LR A[方形] -->B(圆角) B --> C{条件a} C -->|a=1| D[结果1] C -->|a=2| E[结果2] F[横向流程图]
-
竖向流程图源码格式:
```mermaid graph TD A[方形] --> B(圆角) B --> C{条件a} C --> |a=1| D[结果1] C --> |a=2| E[结果2] F[竖向流程图] ```
效果图如下:
graph TD A[方形] --> B(圆角) B --> C{条件a} C --> |a=1| D[结果1] C --> |a=2| E[结果2] F[竖向流程图]
-
UML时序图源码样例:
```mermaid sequenceDiagram 对象A->>对象B: 对象B你好吗?(请求) Note right of 对象B: 对象B的描述 Note left of 对象A: 对象A的描述(提示) 对象B-->>对象A: 我很好(响应) 对象A->>对象B: 你真的好吗? ```
效果图如下:
sequenceDiagram 对象A->>对象B: 对象B你好吗?(请求) Note right of 对象B: 对象B的描述 Note left of 对象A: 对象A的描述(提示) 对象B-->>对象A: 我很好(响应) 对象A->>对象B: 你真的好吗?
-
UML时序图源码复杂样例:
```mermaid sequenceDiagram Title: 标题:复杂使用 对象A->>对象B: 对象B你好吗?(请求) Note right of 对象B: 对象B的描述 Note left of 对象A: 对象A的描述(提示) 对象B-->>对象A: 我很好(响应) 对象B->>小三: 你好吗 小三-->>对象A: 对象B找我了 对象A->>对象B: 你真的好吗? Note over 小三,对象B: 我们是朋友 participant C Note right of C: 没人陪我玩 ```
效果图如下:
sequenceDiagram Title: 标题:复杂使用 对象A->>对象B: 对象B你好吗?(请求) Note right of 对象B: 对象B的描述 Note left of 对象A: 对象A的描述(提示) 对象B-->>对象A: 我很好(响应) 对象B->>小三: 你好吗 小三-->>对象A: 对象B找我了 对象A->>对象B: 你真的好吗? Note over 小三,对象B: 我们是朋友 participant C Note right of C: 没人陪我玩
-
UML标准时序图样例:
```mermaid %% 时序图例子,-> 直线,-->虚线,->>实线箭头 sequenceDiagram participant 张三 participant 李四 张三->王五: 王五你好吗? loop 健康检查 王五->王五: 与疾病战斗 end Note right of 王五: 合理 食物 <br/>看医生... 李四-->>张三: 很好! 王五->李四: 你怎么样? 李四-->王五: 很好! ```
效果图如下:
%% 时序图例子,-> 直线,-->虚线,->>实线箭头 sequenceDiagram participant 张三 participant 李四 张三->王五: 王五你好吗? loop 健康检查 王五->王五: 与疾病战斗 end Note right of 王五: 合理 食物 <br/>看医生... 李四-->>张三: 很好! 王五->李四: 你怎么样? 李四-->王五: 很好!
-
甘特图样例:
```mermaid gantt dateFormat YYYY-MM-DD title 软件开发甘特图 section 设计 需求 :done, des1, 2014-01-06,2014-01-08 原型 :active, des2, 2014-01-09, 3d UI设计 : des3, after des2, 5d 未来任务 : des4, after des3, 5d section 开发 学习准备理解需求 :crit, done, 2014-01-06,24h 设计框架 :crit, done, after des2, 2d 开发 :crit, active, 3d 未来任务 :crit, 5d 耍 :2d section 测试 功能测试 :active, a1, after des3, 3d 压力测试 :after a1 , 20h 测试报告 : 48h ```
效果图如下:
gantt dateFormat YYYY-MM-DD title 软件开发甘特图 section 设计 需求 :done, des1, 2014-01-06,2014-01-08 原型 :active, des2, 2014-01-09, 3d UI设计 : des3, after des2, 5d 未来任务 : des4, after des3, 5d section 开发 学习准备理解需求 :crit, done, 2014-01-06,24h 设计框架 :crit, done, after des2, 2d 开发 :crit, active, 3d 未来任务 :crit, 5d 耍 :2d section 测试 功能测试 :active, a1, after des3, 3d 压力测试 :after a1 , 20h 测试报告 : 48h
-