MarkDown Basics
[TOC]
标题
- Setext形式: 以底线的形式
=
表示最高阶标题-
表示次阶标题Atx形式: 在行首插入1-6各
#
表示1-6阶标题
[TOC]
可以生成标题链接目录(兼容性不好,不是标准实现)
段落
- 类似html格式, md忽略文件中的换行符
- 如果需要新开段落, 手动使用空行(可包含不可见
<space>
<tab>
字符)
区块引用
- 使用email形式的
>
标识
- 可嵌套, 根据层次添加不同数量的
>
- 其中可使用其他形式的语法, 如: 标题, 列表, 代码区块
- 也可以只给整个”段落”第一行加上
>
修辞和强调
*
和_
包裹输出为html标签<em>
**
和__
包裹则是输出为html标签<strong>
~~
包裹输出<del>
(删除线)
- 符号两边如果有空格则会当作普通符号
- 可以
\*
,\_
转义的方式输出普通符号
列表
- 无序列表:
-
,+
,*
都可以输出无序列表- 有序列表: 数字接半角句点
.
- 列表项目标记一般放在最左边, 也可以缩进, 最多3个空格, 项目
标记后面一定要
<space>
或<tab>
- MD其实不关心有序列表中数字的顺序正确性, 只是单纯的输出为
<li>
, 如果需要避免将1.
类似输出为有序列表, 需要转义1\.
- 在列表项目间增加空行, 会把列表内容用
<p>
包裹, 列表 项目可以包含多个段落, 此时列表内段落间也需要空行分隔, 且 项目下所有段落都需要缩进<tab>
或4个<space>
(这里的段落是指MD意义上的一段, 不是源文件的一段, 即缩进 也只是需要在MD意义上一段的第一行缩进, 当然所有行都缩进 比较美观) - 在列表项目内添加引用,
>
需要缩进, 而代码块本身就需要 缩进, 所以需要缩进2个<tab>
或8个<space>
链接
- 行内形式: 直接在链接内容之后用括号添加链接
[link_content](link "title(optional)")
- 参考形式: 为链接定义一个名称, 然后可以在其他地方给出地址
[link_content][id] [id]: link "title(optional)" [id]: link 'title' [id]: link (title)
参考形式中
- 三种定义title的方式都可以
- id可以包括空格, 不区分大小写
- 隐式链接标记功能可以省略id, 此时链接标记(id)视为等同 于链接内容
自动链接
<link>
: 自动转换为链接, 内容就是链接地址<email>
: 自动转换为邮箱链接
图片
- 行内形式:
![alt text](link "title(optional)")
- 参考形式:
![alt text][id] [id]: link "title(optional)"
代码
- 段落内代码: 使用`包裹回输出html标签
<code>
- 代码区块
- 每行缩进
<tab>
或者4个<space>
- 3个`包裹, 后面还可以接代码类型, 可能会有代码高亮
1 | def fn(): |
def fn():
print('hello markdown')
表格
|
: 纵向边界-
: 表头和内容边界, 可用于设置对齐
:----
: 左对齐-----
: 默认左对齐:---:
: 居中对齐----:
: 右对齐
特殊字符
对于html中特殊字符<
(起始标签)和&
(标记html实体)会自动
“智能”转义. 如果使用的&
字符是html实体字符的一部分, 那么会
保留原状, 否则会转换为&
如: 输入©会被保留, 直接显示为copyright字符
分隔线
一行中3个以上的-
, *
, _
可以建立分隔线, 符号之间可以有
空格, 不能有其他东西
其他
- 注脚: 在注脚文字后接
[^footer1]
footer1, 然后在其他 地方[^footer1]: 注脚内容