本文全面介绍 Markdown 语法,包含基础与进阶用法,并特别标注了在 Obsidian 中的快捷键支持。这里推荐可以使用 obsidian(基于本地文件夹,所有笔记都是
.md文件。支持双向链接,能形成知识网络。插件生态极其强大,可无限扩展)和 typora(所见即所得,界面干净,专注于写作本身。是培养 Markdown 手感和兴趣的最佳选择)作为使用软件,或者在 sublime text 和 vscode 等中使用插件。
了解 Markdwon
Markdown 是什么?
Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber)。它允许人们”使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档”。
Markdown 的核心特点
简洁性: 使用直观的符号来表示格式,比如用
#表示标题,用*表示列表项。这些符号在视觉上就能传达其含义,即使不进行渲染也具有良好的可读性。可读性: 即使是纯文本形式的 Markdown 文档,也能清晰地展现文档的结构和层次。读者无需专门的软件就能理解内容的组织方式。
便携性: Markdown 文件是纯文本格式,可以在任何文本编辑器中打开和编辑,不依赖特定的软件或操作系统。
转换性: 可以轻松转换为 HTML、PDF、Word 文档等多种格式,满足不同的发布需求。
Markdown 与 HTML 的关系
Markdown 并不是 HTML 的替代品,而是 HTML 的简化版本。实际上,Markdown 的最终目标就是转换为 HTML。两者的关系可以理解为:
Markdown 源码 → 解析器 → HTML 输出 → 浏览器渲染 |
为什么使用 Markdown?
提高写作效率:无需频繁使用鼠标进行格式设置,可以保持思路的连贯性。专注于内容创作而不被格式问题分散注意力。
降低学习门槛:相比于 LaTeX、HTML 等标记语言,Markdown 的语法极其简单,可以快速掌握基本用法。
广泛兼容性:几乎所有的现代文本编辑器、代码编辑器、笔记应用都支持 Markdown。
主流平台支持:大部分平台都支持 markdown 比如 GitHub、Gitee、CSDN、Notion、Typora、Obsidian 等等。
版本控制友好:由于是纯文本格式,Markdown 文件可以很好地与 Git 等版本控制系统配合,而 Word 只会将内容锁定在专有文件格式中。
未来适应性:即使特定的软件或平台消失,Markdown 文件作为纯文本仍然可以被访问和编辑,确保了内容的长期可用性。
平台独立性:可以在大部分设备上创建 Markdown 格式的文本并且不受特定软件版本限制。
应用场景广泛:技术文档编写、博客文章创作、学术写作甚至日常记录。
Markdown 语法
标题
创建标题使用 1-6 个 # 符号,对应 HTML 的 <h1> 到 <h6> 标签:
# 一级标题 |
替代语法(仅适用于一级和二级标题):
一级标题 |
提示:在 Obsidian 中,使用
Ctrl+1到Ctrl+6可快速创建相应级别的标题。有一些软件可能不支持代替语法了,不过目前来看 obsidian 可以。
段落与换行
段落:用一个空行(打两个连续回车)分隔两个段落,会产生较大的垂直间距
示例:
这是第一个段落。
这是第二个段落(中间有一个空行)。换行:在行尾添加两个空格 + 回车,实现单一行内的换行(无垂直间距)
示例:
这是第一行(末尾有两个空格)
这是第二行
注意:某些软件也支持直接使用
<br>标签强制换行。
字体样式
粗体 (Ctrl+B)
**加粗文本** 或者 **加粗文本** |
加粗文本 或者 加粗文本
斜体 (Ctrl+I)
_斜体文本_ 或者 _斜体文本_ |
斜体文本 或者 斜体文本
粗斜体
**_粗斜体_** 或者 **_粗斜体_** 或者 _**粗斜体**_ |
粗斜体 或者 粗斜体 或者 粗斜体
删除线 (Alt+D)
~~删除文本~~ |
删除文本
高亮 (Alt+G)
==高亮文本== |
==高亮文本==
注意:高亮语法并非所有软件都支持,但 Obsidian 支持此语法。
列表
无序列表 (Ctrl+W)
使用 -、* 或 + 符号创建,符号后需加一个空格:
- 项目一 |
- 项目一
- 项目二
- 项目三
- 项目四
最佳实践:在同一个列表中保持符号一致性,否则某些解析器会视为新列表开始。
有序列表 (Ctrl+Y)
使用 数字. 标记,数字后加空格:
1. 第一项 |
- 第一项
- 第二项
- 第三项(数字错误也会自动修正)
任务列表
- [x] 已完成任务 |
- 已完成任务
- 未完成任务
- 另一个任务
嵌套列表
通过缩进创建多级列表:
1. 第一项 |
- 第一项
- 子项一
- 子项二
- 第二项
- 子项 A
- 子子项
- 子项 A
引用
在段落前加 > 符号表示引用:
> 这是一个引用块。 |
这是一个引用块。
可以跨越多行。
嵌套引用:
> 一级引用 |
一级引用
二级引用
三级引用
引用中包含其他元素:
> ## 引用中的标题 |
引用中的标题
- 引用中的列表
- 另一个项目
引用中的代码
引用中包含其他元素并非所有软件都支持显示(比如 obsidian 就不可以)。
链接
行内链接
[百度搜索](https://www.baidu.com) |
引用链接
这是一个[引用链接][baidu]的示例。 |
这是一个引用链接的示例。
这样点击“引用链接”后就可以跳转到引用链接的页面。
直接链接
<https://www.baidu.com> |
https://www.baidu.com
example@email.com
跳转到文档内的标题
跳转到[标题](#标题)部分 |
跳转到标题部分
注意:锚点链接中的空格通常用连字符替代,特殊字符可能被忽略。在 obsidian 中可以直接用[[Markdown指南#标题]]来自动寻找要跳转的标题。
代码
行内代码
使用 `print()` 函数输出文本。 |
使用 print() 函数输出文本。
代码块 (Alt+C)
使用三个反引号创建代码块,可指定语言实现语法高亮:
```python |
def hello_world(): |
支持的语言包括:javascript、html、css、python、java、sql 等。
缩进代码块
使用四个空格或一个制表符创建代码块:
这是缩进代码块 |
分割线
使用三个及以上 -、* 或 _ 创建分割线:
--- |
注意:分割线前后最好有空行,否则可能被解释为标题(标题)。
图片
语法与链接类似,前面加 !:
 |
示例:
 |
提示:在 Obsidian 中,可以直接拖拽图片到文档中插入,但是本地图片的地址显示并不规范,无法直接在其他软件中使用,并且建议用相对地址。
表格
使用 | 和 - 创建表格:
| 左对齐 | 居中对齐 | 右对齐 | |
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 单元格 | 单元格 | 单元格 |
| 第二行 | 数据 | 数据 |
也可以不带:,这样默认左对齐显示。
提示:在 Obsidian 中,有多种插件可以增强表格功能,如 Advanced Tables。
转义字符
在 markdown 中一些符号不能直接显示,可以使用 \ 转义特殊字符:
\*这不是斜体\* |
*这不是斜体*
# 这不是标题
[这不是链接](not-a-link.com)
需要转义的字符:\ ` * _ {} [] () # + - . ! |
内嵌 HTML
Markdown 支持内嵌 HTML:
这是一个<span style="color:red">红色文本</span>。 |
这是一个红色文本。
| 表格单元格 |
注意:并非所有 HTML 标签在所有软件中都有效,不过使用内嵌 HTML 能让我们实现更美观的展示效果。
进阶技巧
脚注
这是一个带有脚注的句子[^1]。 |
这是一个带有脚注的句子^1。
缩写
_[HTML]: HyperText Markup Language |
obsidian 默认不支持这个语法。
注释(不可见)
<!-- 这是注释,不会显示在渲染结果中 --> |