Markdown 指南


本文全面介绍 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?

  1. 提高写作效率:无需频繁使用鼠标进行格式设置,可以保持思路的连贯性。专注于内容创作而不被格式问题分散注意力。

  2. 降低学习门槛:相比于 LaTeX、HTML 等标记语言,Markdown 的语法极其简单,可以快速掌握基本用法。

  3. 广泛兼容性:几乎所有的现代文本编辑器、代码编辑器、笔记应用都支持 Markdown。

  4. 主流平台支持:大部分平台都支持 markdown 比如 GitHub、Gitee、CSDN、Notion、Typora、Obsidian 等等。

  5. 版本控制友好:由于是纯文本格式,Markdown 文件可以很好地与 Git 等版本控制系统配合,而 Word 只会将内容锁定在专有文件格式中。

  6. 未来适应性:即使特定的软件或平台消失,Markdown 文件作为纯文本仍然可以被访问和编辑,确保了内容的长期可用性。

  7. 平台独立性:可以在大部分设备上创建 Markdown 格式的文本并且不受特定软件版本限制。

  8. 应用场景广泛:技术文档编写、博客文章创作、学术写作甚至日常记录。

Markdown 语法

标题

创建标题使用 1-6 个 # 符号,对应 HTML 的 <h1><h6> 标签:

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

替代语法(仅适用于一级和二级标题):

一级标题
=======

二级标题
-------

提示:在 Obsidian 中,使用 Ctrl+1Ctrl+6 可快速创建相应级别的标题。有一些软件可能不支持代替语法了,不过目前来看 obsidian 可以。

段落与换行

  • 段落:用一个空行(打两个连续回车)分隔两个段落,会产生较大的垂直间距

    示例:

    这是第一个段落。

    这是第二个段落(中间有一个空行)。
  • 换行:在行尾添加两个空格 + 回车,实现单一行内的换行(无垂直间距)

    示例:

    这是第一行(末尾有两个空格)
    这是第二行

注意:某些软件也支持直接使用 <br> 标签强制换行。

字体样式

粗体 (Ctrl+B)

**加粗文本** 或者 **加粗文本**

加粗文本 或者 加粗文本

斜体 (Ctrl+I)

_斜体文本_ 或者 _斜体文本_

斜体文本 或者 斜体文本

粗斜体

**_粗斜体_** 或者 **_粗斜体_** 或者 _**粗斜体**_

粗斜体 或者 粗斜体 或者 粗斜体

删除线 (Alt+D)

~~删除文本~~

删除文本

高亮 (Alt+G)

==高亮文本==

==高亮文本==

注意:高亮语法并非所有软件都支持,但 Obsidian 支持此语法。

列表

无序列表 (Ctrl+W)

使用 -*+ 符号创建,符号后需加一个空格:

- 项目一
- 项目二

* 项目三

- 项目四
  • 项目一
  • 项目二
  • 项目三
  • 项目四

最佳实践:在同一个列表中保持符号一致性,否则某些解析器会视为新列表开始。

有序列表 (Ctrl+Y)

使用 数字. 标记,数字后加空格:

1. 第一项
2. 第二项
3. 第三项(数字错误也会自动修正)
  1. 第一项
  2. 第二项
  3. 第三项(数字错误也会自动修正)

任务列表

- [x] 已完成任务
- [ ] 未完成任务
- [ ] 另一个任务
  • 已完成任务
  • 未完成任务
  • 另一个任务

嵌套列表

通过缩进创建多级列表:

1. 第一项
- 子项一
- 子项二
2. 第二项
- 子项 A
- 子子项
  1. 第一项
    • 子项一
    • 子项二
  2. 第二项
    • 子项 A
      • 子子项

引用

在段落前加 > 符号表示引用:

> 这是一个引用块。
> 可以跨越多行。

这是一个引用块。
可以跨越多行。

嵌套引用:

> 一级引用
>
> > 二级引用
> >
> > > 三级引用

一级引用

二级引用

三级引用

引用中包含其他元素:

> ## 引用中的标题
>
> - 引用中的列表
> - 另一个项目
> `引用中的代码`

引用中的标题

  • 引用中的列表
  • 另一个项目
    引用中的代码

引用中包含其他元素并非所有软件都支持显示(比如 obsidian 就不可以)。

链接

行内链接

[百度搜索](https://www.baidu.com)

百度搜索

引用链接

这是一个[引用链接][baidu]的示例。

[baidu]: https://www.baidu.com "百度首页"

这是一个引用链接的示例。

这样点击“引用链接”后就可以跳转到引用链接的页面。

直接链接

<https://www.baidu.com>
<example@email.com>

https://www.baidu.com
example@email.com

跳转到文档内的标题

跳转到[标题](#标题)部分

跳转到标题部分

注意:锚点链接中的空格通常用连字符替代,特殊字符可能被忽略。在 obsidian 中可以直接用[[Markdown指南#标题]]来自动寻找要跳转的标题。

代码

行内代码

使用 `print()` 函数输出文本。

使用 print() 函数输出文本。

代码块 (Alt+C)

使用三个反引号创建代码块,可指定语言实现语法高亮:

```python
def hello_world():
print("Hello, World!")
```
def hello_world():
print("Hello, World!")

支持的语言包括:javascript、html、css、python、java、sql 等。

缩进代码块

使用四个空格或一个制表符创建代码块:

这是缩进代码块
第二行代码

分割线

使用三个及以上 -*_ 创建分割线:

---

---

---



注意:分割线前后最好有空行,否则可能被解释为标题(标题)。

图片

语法与链接类似,前面加 !

![替代文本](图片URL "可选标题")

示例:

![Obsidian图标](https://obsidian.md/favicon.ico "Obsidian")

提示:在 Obsidian 中,可以直接拖拽图片到文档中插入,但是本地图片的地址显示并不规范,无法直接在其他软件中使用,并且建议用相对地址。

表格

使用 |- 创建表格:

| 左对齐 | 居中对齐 | 右对齐 |
| :----- | :------: | -----: |
| 单元格 | 单元格 | 单元格 |
| 第二行 | 数据 | 数据 |
左对齐 居中对齐 右对齐
单元格 单元格 单元格
第二行 数据 数据

也可以不带:,这样默认左对齐显示。

提示:在 Obsidian 中,有多种插件可以增强表格功能,如 Advanced Tables。

转义字符

在 markdown 中一些符号不能直接显示,可以使用 \ 转义特殊字符:

\*这不是斜体\*
\# 这不是标题
\[这不是链接]\(not-a-link.com)

*这不是斜体*
# 这不是标题
[这不是链接](not-a-link.com)

需要转义的字符:\ ` * _ {} [] () # + - . ! |

内嵌 HTML

Markdown 支持内嵌 HTML:

这是一个<span style="color:red">红色文本</span>

<table>
<tr>
<td>表格单元格</td>
</tr>
</table>

这是一个红色文本

表格单元格

注意:并非所有 HTML 标签在所有软件中都有效,不过使用内嵌 HTML 能让我们实现更美观的展示效果。

进阶技巧

脚注

这是一个带有脚注的句子[^1]。

[^1]: 这是脚注的内容。

这是一个带有脚注的句子^1

缩写

_[HTML]: HyperText Markup Language
_[CSS]: Cascading Style Sheets

HTML 和 CSS 是网页开发的基础。

obsidian 默认不支持这个语法。

注释(不可见)

<!-- 这是注释,不会显示在渲染结果中 -->

下一节

Obsidian 数学块语法


  目录