前言
之前提到过要写一个 Markdown 语法总结,但是一直没写。
一是 Markdown 已经熟悉的不能再熟悉了,写了感觉很无聊。
二是最近事情多了,把这件事情忘记了。
绝对不是偷懒,懒得写 🤐
语法
文字编辑
标题
# text
## text
### text
#### text
##### text
###### text
这里 # 的数量表示了标题的级别,一般最多支持六级标题。
段落与换行
第一段
第二段
第一行\
第二行
使用空行可以开始一个新的段落。
如果只想在同一个段落中强制换行,可以在上一行末尾添加反斜杠 \,也可以添加两个空格。
分隔线
---
单独一行输入三个或更多 -,可以插入一条分隔线。为了避免被识别成其它语法,建议在分隔线前后各留一个空行。
高亮
==text==
高亮不属于通用 Markdown 语法,需要平台启用对应的扩展,很多平台并不支持。
加粗
**text**
__text__
加粗有两种写法,如上。
斜体
*斜体*
_斜体_
斜体有两种写法,如上。
删除线
~~text~~
删除线的写法如上。
我的博客给删除线的显示效果修改成黑幕了,如下。
秘密
我觉得这样的效果比较好,也比较方便。
转义
\*这不是斜体\*
\# 这不是标题
如果想直接显示 Markdown 中有特殊作用的符号,可以在符号前添加反斜杠 \。
链接
[跳转到“示例”网页](https://example.com/)
[跳转到“标题”](#标题)
<https://example.com/>
链接由显示文本和目标地址组成,可以跳转到其它网页,也可以跳转到本文中的某个标题。
#标题 必须与页面最终生成的标题 ID 一致,而不同平台生成标题 ID 的规则可能不同。
如果只想让网址可以直接点击,也可以使用 <https://example.com/> 这种写法。
列表
无序列表(Bullet List)
- item 1
- item 2
- item 2-1
- item 2-2
- item 2-2-1
无序列表不分前后,可以依靠缩进表示上下关系。
有序列表(Numbered List)
1. item1
2. item2
1. item 2-1
2. item 2-2
1. item 2-2-1
有序列表会按照顺序显示,也可以依靠缩进表示上下关系。
第一项的数字决定列表从几开始,后面一般按照顺序填写,阅读源码时会更清楚。
待办事项(可选框)
- [ ] task 1
- [ ] task 2
- [ ] task 2-1
- [ ] task 2-2
- [x] task 2-2-1
[ ] 左右方括号中间一个空格表示不选择。
[x] 左右方括号中间一个 x 或者 X 表示选择。
可以依靠缩进表示上下关系。
待办事项不属于通用 Markdown 语法,不过 GitHub、Hugo 和很多编辑器都支持。
引用(Quote)
> quote 1
> quote 2
> > quote 2-1
> > quote 2-2
> > > quote 2-2-1
每增加一个 >,就会多嵌套一层引用。
我在博客中一般用于引用一个具体的作品或者表示某人说的话。
图片

图片描述 是图片的替代文本,通常会在图片无法加载时显示,也可以帮助读屏软件理解图片内容。有的平台也会将其显示在图片下方。
/path/to/image 表示图片资源的路径。
表格
| 左对齐 | 居中 | 右对齐 |
| :----- | :--: | -----: |
| 123 | 456 | 789 |
| 321 | 654 | 987 |
第一行是每列的表头,第二行是分隔行,每列至少使用三个 -。
在左侧、两侧或右侧添加 :,可以分别设置左对齐、居中或右对齐。
后面几行为每列的具体内容。
表格不属于 CommonMark 的基础语法,不过 GitHub、Hugo 和很多编辑器都支持。
脚注(Footnote)
这里有一个脚注[^1]
[^1]: this is a footnote
脚注的定义在编辑过程中不一定要放在最下方。
在最终的显示效果中,平台一般会自动将其编排在文章末尾。
脚注不属于 CommonMark 的基础语法,能否使用需要看平台是否支持。
标注(callout)
> [!NOTE]
> text 1
>
> text 2
Callout 不属于通用 Markdown 语法。GitHub、Hugo 和 Obsidian 等平台支持类似的写法,但支持的类型和显示效果可能不同。
这里不多介绍,建议查询对应的文档。
比如 Obsidian 就有官方文档介绍它支持哪些类型。
代码相关
行内代码
`code`
使用一对反引号,可以在一行文字中插入代码、命令或其它需要原样显示的内容。
代码块
```c
#include <stdio.h>
int main(void)
{
return 0;
}
```
代码块的开头和结尾至少需要三个反引号。开头的反引号后面可以填写语言名称,例如 c、python 或 bash,支持的编辑器会根据语言进行语法高亮。
上面的示例为了完整显示三个反引号,外层代码块使用了四个反引号。实际使用时,像示例内部那样写三个就够了。
总结
这篇文章既包含比较通用的 Markdown 基础语法,也记录了删除线、任务列表、表格、脚注和 Callout 等常见扩展。
这些扩展并不是所有平台都支持,具体效果还是要看平台使用的 Markdown 解析器和相关配置。
只能说 Markdown 各个平台“百花齐放”啊,每个平台语法和样式都不同。因此 Markdown 只适用快速记东西。如果你要写一个格式比较复杂的文章,还是别用 Markdown 了。