概述
设计理念
Markdown 易于阅读,方便创作web文档,利于各平台无缝分发。
Markdown 语法灵感最大的来源还是纯文本 email 的格式,完全由标点符号标签组成的纯文本。
Markdown 文件应该以纯文本形式原样发布,不应该包含标记标签和格式化指令。
内联HTML语法
HTML 是一种发布格式,Markdown 是一种创作格式。
Markdown语法集合比较小,只是HTML标签的一小部分。
对于 Markdown 中未包含的标签, 可以直接使用 HTML标签,例如用HTML
<a>
标签替代Markdown的链接语法。
特殊字符自动转义
在 HTML 中, 有两个字符需要特殊对待: < 和 &,左尖括号用于起始标签。如果你想将它们用作字面量, 你必须将它们转义为字符实体,例如<
和 &
。
行内基本语法
标题
Markdown支持两种标题语法,atx 和 Setext 形式。
atx 形式:行首加井号表示不同级别的标题 (H1-H6),例如:# H1, ## H2, ### H3,#### H4.
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
Setext 形式:在文字下放加 ===
表示一级标题,使用 ---
表示二级标题。
一级标题
====
二级标题
---
文本
普通文本
直接输入的文字就是普通文本。需要注意的是要换行的时候不能直接通过回车来换行,需要使用
\<br>
.也就是html
里面的标签. 注意第三行的<br>
前加了反斜杠\
。目的就是像其他语言那样实现转义,也就是\<
的转义。单行文本
使用两个
Tab
符实现单行文本。多行文本
多行文本和单行文本异曲同工,只要在每行行首加两个Tab
。文字高亮
如果你想使一段话中部分文字高亮显示,来起到突出强调的作用,那么可以把它用 ` ` 包围起来。注意
这不是单引号,而是Tab
上方,数字1
左边的按键(注意使用英文
输入法)。
斜体和粗体
使用*
和**
表示斜体和粗体。
这是 斜体, 这是 粗体。
删除线和下划线
可用~~文字~~表示删除,下划线则可以通过HTML
的<u>
标签来实现。
效果
使用~~
表示删除线 , 使用<u>
表示下划线。
外链接
使用 [描述](链接地址) 为文字增加外链接。
这是去往 github 的链接。
锚点
锚点其实就是页内超链接,可以使用HTML的锚点标签(#
)来设置锚点:[回到目录](#index)
但其实呢,每一个标题都是一个锚点,不需要用标签来指定,比如我们 [回到顶部](#TEST)
只支持在标题后插入锚点,其它地方无效。
列表
使用 *,+,- 表示无序列表。
* 无序列表项 一 - 语文 + 编程语言
* 无序列表项 二 - 数学 + 脚本语言
* 无序列表项 三 - 英语 + Python
效果(其他两种一样):
无序列表项 一
无序列表项 二
无序列表项 三
使用数字和点表示有序列表。
有序列表项 一
有序列表项 二
有序列表项 三
多级数字列表
和圆点的列表一样,数字列表也有多级结构:
这是一级的数字列表,数字1还是1
这是二级的数字列表
这是三级的数字列表
- 四级的数字列表显示效果
复选框列表
语法:
- [x] C
- [x] C++
- [x] Java
- [x] Qt
- [x] Android
- [ ] C#
- [ ] .NET
示例:
- C
- C++
- Java
- Qt
- Android
- C#
- .NET
插入图像
使用 ![描述](图片链接地址) 插入图像。
![Markdown](https://cdn.jsdelivr.net/gh/kylenchen/CDN@latest/cover/markdown.jpg)
插入图片示例:
文字引用
使用 > 表示文字引用。
单个引用:
> 野火烧不尽,春风吹又生。
示例:
野火烧不尽,春风吹又生。
字符包围:
> 数据结构 >> 树 >>> 二叉树 >>>> 平衡二叉树 >>>>> 满二叉树
示例:
数据结构
树
二叉树
平衡二叉树
满二叉树
块语法
内容目录
在段落中填写 [TOC] 以显示全文内容的目录结构。
代码块
对于程序员来说这个功能是必不可少的,插入程序代码的方式有两种,一种是利用缩进(Tab), 另一种是利用“`”
符号。
行内式
示例:
1
人生苦短,我用`python`
效果:
人生苦短,我用python
缩进式多行代码
使用 四个缩进空格 表示代码块。
示例:
这是一个代码块,此行左侧有四个不可见的空格。加强的代码块
支持四十一种编程语言的语法高亮的显示,行号显示。
代码示例:
1
$ sudo npm install
Python 示例:
1
2
3
4
5
6
7
8
9
10
11
12
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
'''interpreter message =
prompt'''JavaScript 示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/**
* nth element in the fibonacci series.
* @param n >= 0
* @return the nth element, >= 0.
*/
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.write(fib(10));
表格
语法说明:
不管是哪种方式,第一行为表头,第二行分隔表头和主体部分,第三行开始每一行为一个表格行。列于列之间用管道符|隔开。原生方式的表格每一行的两边也要有管道符。第二行还可以为不同的列指定对齐方向。
| 左对齐 | 居中 | 右对齐 |
|:------------ |:---------------:| -----:|
| col 3 is | some wordy text | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
表格可以指定对齐方式,默认为左对齐。左对齐|:
,居中|:|
,右对齐|:
。
左对齐 | 居中 | 右对齐 |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
HTML 标签
本站支持在 Markdown 语法中嵌套 Html 标签,譬如,你可以用 Html 写一个纵跨两行的表格:
1 | <table> |
待办事宜Todo列表
使用带有 [ ] 或 [x] (未完成或已完成)项的列表语法撰写一个待办事宜列表,并且支持子列表嵌套以及混用Markdown语法,例如:
- [ ] Cmd Markdown 开发
- [ ] 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- [ ] 支持以 PDF 格式导出文稿
- [x] 新增Todo列表功能
- [x] 改进 LaTex 功能
- [x] 修复 LaTex 公式渲染问题
- [x] 新增 LaTex 公式编号功能
- [ ] 七月旅行准备
- [ ] 准备邮轮上需要携带的物品
- [ ] 浏览日本免税店的物品
- [x] 购买蓝宝石公主号七月一日的船票
对应显示如下待办事宜 Todo 列表:
- Cmd Markdown 开发
- 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- 支持以 PDF 格式导出文稿
- 新增Todo列表功能
- 改进 LaTex 功能
- 修复 LaTex 公式渲染问题
- 新增 LaTex 公式编号功能
- 七月旅行准备
- 准备邮轮上需要携带的物品
- 浏览日本免税店的物品
- 购买蓝宝石公主号七月一日的船票
特殊字符
特殊字符 | 描述 | 代码 |
---|---|---|
空格符 | |
|
< | 小于号 | < |
> | 大于号 | > |
& | 和号 | & |
¥ | 人民币 | ¥ |
© | 版权 | © |
°C | 摄氏度 | °C |
± | 正负号 | ± |
× | 乘号 | × |
÷ | 除号 | ÷ |
² | 平方(上标²) | ² |
³ | 立方(上标³) | ³ |