文章

Obsidian 格式化笔记

基于 Markdown 轻量标记语法支持的 Obsidian 软件入门使用。

标题

创建小标题,在小标题文本前添加至多六个 # 符号。# 符号的数量决定了小标题的级别。

# 这是标题 1
## 这是标题 2
### 这是标题 3
#### 这是标题 4
##### 这是标题 5
###### 这是标题 6

段落

要创建段落,请使用空行来分隔。

这是一个段落。

这是另一个段落。

在段落内部的多个空格和段落之间的多个空行在阅读视图中会被合并显示为一个空格和一个空行。

如果想要显示多个空格或空行,你可以在笔记中使用 &nbsp;(空格)和 <br>(换行)。

格式化文本

粗体、斜体、高亮来突显文本字体样式。

样式 语法 示例 输出
粗体 ** **__ __ **粗体文本** 粗体文本
斜体 * *_ _ *斜体文本* 斜体文本
删除线 ~~ ~~ ~~删除线文本~~ 删除线文本
高亮 == == ==高亮文本== ==高亮文本==
粗体和嵌套斜体 ** **_ _ **粗体和 _嵌套斜体_ 文本** 粗体和 嵌套斜体 文本
粗体和斜体 *** ***___ ___ ***粗体和斜体文本*** 粗体和斜体文本

格式化文本也可以使用编辑相关的快捷键

如果需要将语法符号视为普通文本进行展示,需要在语法符号前加反斜杠进行转义。比如:

\*\*这里的加粗不会真正的加粗\*\*

**这里的加粗不会真正的加粗** 将视为普通文本,不会真正的加粗显示。

\*这里的倾斜不会真正的倾斜\*

*这里的倾斜不会真正的倾斜* 将视为普通文本,不会真正的倾斜显示。

列表

创建无序列表,在文本前加上 -*+ 开头,并且要空一格书写列表项内容。

- 无序列表项1
- 无序列表项2
* 无序列表项4
* 无序列表项4
+ 无序列表项5
+ 无序列表项6

效果如下:

  • 无序列表项1
  • 无序列表项2
  • 无序列表项4
  • 无序列表项4
  • 无序列表项5
  • 无序列表项6

创建有序列表,每行以数字加上 . 开头,并且要空一格书写每个列表项内容。

1. 有序列表项1
2. 有序列表项2
3. 有序列表项3

效果如下:

  1. 有序列表项1
  2. 有序列表项2
  3. 有序列表项3

嵌套列表

Obsidian 中所有类型的列表都支持嵌套。

创建嵌套列表,要缩进一个或多个列表项:

- 项目
	* 二级		
		+ 三级
- 项目
	* 二级
		+ 三级

效果如下:

  • 项目
    • 二级
      • 三级
  • 项目
    • 二级
      • 三级

使用 TabShift+Tab 来缩进或取消缩进一个或多个已选择的列表项,以便快速地组织列表。

任务列表

要创建任务列表,每个列表项以连字符和空格开头,后跟 [ ]

- [x] 这是已完成的任务。
- [ ] 这是未完成的任务。
  • [x] 这是已完成的任务。
  • [ ] 这是未完成的任务。

可以在阅读视图中通过点击复选框来切换任务状态。

可以通过在括号内添加任意字符来将任务标记为已完成状态。

转义

如果 URL 中含有空格的话,空格需要转义为 %20,如:

[Export options](Pasted%20image)

也可以用 <> 将有空格的 URL 包含起来,如:

[Export options](<Pasted image>)

引用

你可以在文本前加上 > 符号来引用文本。

> 人类面临着越来越复杂和紧迫的问题,他们有效应对这些问题的能力对于社会的稳定和持续发展至关重要。

\- 道格·恩格尔巴特,1961

效果如下:

人类面临着越来越复杂和紧迫的问题,他们有效应对这些问题的能力对于社会的稳定和持续发展至关重要。

- 道格·恩格尔巴特,1961

其中,\ 转义作用。

代码

你可以在段落里插入代码,或将其放在代码块中。

行内代码

你可以使用一对反引号在句子插入代码。

`反引号`中的文本将被格式化为代码。

反引号中的文本将被格式化为代码。

代码块

要创建一个代码块,请用一对三个反引号括住代码。

这是一个代码块
这是一个代码块

也可以通过使用 Tab 键或4个空格缩进文本来创建代码块。

可以在开头的三个反引号后添加语言名称来为代码块添加语法高亮。

function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}

Obsidian 使用 Prism 进行语法高亮。更多信息请参阅 Prism 支持的语言

脚注

使用以下语法向笔记中添加脚注:

[^1]: 这是一个简单的脚注
[^长脚注]: 在每一行的开头添加2个空格,
  可以编写跨越多行的脚注。
[^注释]: 可以使用非数字来命名脚注。但渲染时,脚注仍然会显示为数字。这样可以更容易地识别脚注内容。
^[行内脚注]: 可以在句子中使用行内脚注。请注意插入符号在方括号外,将脚注内容写在方括号内。

在段落中需要插入脚注的地方标注一个符号,再在段落后对该脚注进行解释即可。

笔记内容:

比如,这是一个简单的脚注:^1

比如,这是一个长一些的脚注:^长脚注

比如,这是一个非数字命令的脚注:[^注释]。

比如,这是一个在句子中使用的行内脚注:^[行内脚注]。

可以编写跨越多行的脚注。 [^注释]: 可以使用非数字来命名脚注。但渲染时,脚注仍然会显示为数字。这样可以更容易地识别脚注内容。

注释

可以用 %% 包围文本来添加注释。注释只在编辑视图中可见。

这是一个 %%行内%% 注释。

%%
这是一个块注释。

块注释可以跨多行。
%%

表格

创建表格

可以使用竖线(|)和短横线(-)来创建表格。竖线用于分隔列,短横线用于定义列标题,分隔表格的标题行和内容行。

| 标题1 | 标题 |
| ---- | ---- |
| 单元格内容 | 单元格内容 |

效果如下:

标题1 标题2
单元格内容 单元格内容

表格两侧的竖线是可选的。

单元格不需要与列完全对齐。每个标题行至少要有两个短横线。

标题1 | 标题
-- | --
单元格内容 | 单元格内容
标题1 标题
单元格内容 单元格内容

表格样式

也可以为表格内的内容添加基本样式。

第一列 第二列
内部链接 链接到vault内的文件。
插入文件 直接嵌入库内文件

表格中的竖线

如果你想在表格中使用别名,或者在表格中调整图片大小,你需要在竖线前加上 \ 以防止符号错误识别。

图表

可以使用 Mermaid 语法在笔记中添加图表和流程图。Mermaid 支持多种图表,如流程图时序图时间线等。

提示:可以尝试使用 Mermaid 的 在线编辑器 来帮助你在笔记中添加图表。

要添加 Mermaid 图表,创建一个 mermaid 代码块

sequenceDiagram
    Alice->>+John: 你好 John,你好吗?
    Alice->>+John: John,你能听到我吗?
    John-->>-Alice: 嗨 Alice,我能听到你!
    John-->>-Alice: 我感觉很好!
sequenceDiagram
	Alice->>+John: 嗨,John,最近怎样?
    Alice->>+John: John,听得到我说话吗?
    John-->>-Alice: 嗨,Alice,我能听到!
    John-->>-Alice: 最近不错!

数学公式

LaTeX 是数学公式的书写语言,而 MathJax 与 KaTeX 则是两种在浏览器中把 LaTeX 渲染成可视公式的引擎。

Obsidian 支持渲染引擎 MathJax,使用 LaTeX 符号在笔记中添加数学公式。

要在笔记中添加 MathJax 公式,请用双美元符号($$)将其括起来。

$$
\begin{vmatrix}a & b\\
c & d
\end{vmatrix}=ad-bc
$$

$$ \begin{vmatrix}a & b\ c & d \end{vmatrix}=ad-bc $$

也可以用 $ 符号包裹数学公式来实现行内数学公式。

这是一个行内数学表达式 $e^{2i\pi} = 1$。

这是一个行内数学表达式 $e^{2i\pi} = 1$。

想了解更多有关语法的信息,请参阅MathJax 基础教程

要查看支持的 MathJax 包列表,请参阅TeX/LaTeX 扩展列表

Obsidian 与 GitHub 的 LaTeX 兼容性建议

  • 行内公式:使用 $...$,但前后必须加空格,避免紧贴文字。
  • 块级公式:使用 $$...$$,支持 casesbmatrixflalign 等复杂环境。
  • 复杂公式(如 \sum, \prod, \int):优先使用块级公式,避免行内渲染偏差。
  • 避免使用\require{}\cancel{}\label{} 等 GitHub 不支持的扩展。

内部链接

当你重命名某个文件时,Obsidian 会自动更新仓库中指向这个文件的内部链接。如果你不希望自动更新,而是在可以更新时手动选择是否更新,则可以按以下操作进行关闭这个功能:

设置 → 文件与链接 → 始终更新内部链接

内部链接的语法

Obsidian 支持以下链接语法:

  • Wiki 式链接风格:[[运动三定律]]
  • Markdown 式链接风格:[运动三定律](运动三定律.md)

这两种语法是等效的——不仅在编辑器中显示效果相同,链接的笔记也相同。

注意:当使用 Markdown 式链接语法时,你需要保证链接中使用的是URL编码。例如,空格不能直接写为空格,而是要写成%20

Obsidian 默认使用 Wiki 式的内部链接。如果你更看重链接的可迁移性,则可以禁用 Wiki 式链接语法,将默认设置为 Markdown 式链接语法。

要默认使用 Markdown 式语法:

  1. 打开设置
  2. 文件与链接下,禁用使用 Wiki 链接功能。

不过,即使你禁用了Wiki 式语法,但你仍然可以通过在编辑器中输入两个方括号[[插入链接,此时你仍然可以使用候选链接的功能。当你选中一个链接并回车后,Obsidian 会生成一条 Markdown 式链接插入笔记正文中。

链接附件

在编辑视图下,你可以通过以下几种方式链接附件:

  • 输入[[,然后选择要链接到的附件。
  • 选择编辑器中的文本,然后按下[[,随后选中的文本将自动转变为链接。
  • 打开命令面板,然后选择插入链接命令。

注意:虽然你可以链接到任何所支持的附件类型,但对于笔记的链接和对于附件的链接还是有些许不同:链接到 Markdown 以外的文件格式时,链接需要包括文件扩展名,例如 [[image.png]]

链接笔记小标题

在 Obsidian 中,你可以链接任意一篇笔记中的任意一个小标题,这也被称为 锚链接

要链接到小标题,你需要在链接目标末尾加上井号(#),然后附上小标题的名称。

例如,[[运动三定律#第二定律]]

这种方式可以直接链接到任意一个级别的小标题。但如果你想逐级链接,那么你可以在链接中加入多个井号。

例如,[[我的笔记#一级小标题#一级小标题下的二级小标题]]

链接笔记中的块

块是比一篇笔记更小的单元。在 Obsidian 中,两个空行之间包裹的内容就是一个块。段落、表格、列表等等都可以作为一个块进行引用和链接。

你可以在链接的末尾加上#^,然后附上所要链接的块的唯一标识符,来链接到某个块。

块的标识符怎么生成的呢?

  • 当你输入^符号后,Obsidian 就会自动在候选列表中提示你可能要链接的块。
  • 通过关键词的搜索,轻松地从候选列表中选择所需链接的块。
  • 随后,Obsidian 就会自动生成指向这个块的链接。

上述做法是 Obsidian 自动为链接的块创建了一个随机的块标识符。这种随机标识符往往就是一串没有规律的字符。

如果你想创建更易读的块标识符,你还可以在块末尾添加一个空格和^符号,然后再写上自己创建的标识符即可。例如:

今天不是昨天,也不是明天。 ^quote-of-the-day

阅读视图块标识符隐藏:

今天不是昨天,也不是明天。 ^quote-of-the-day

随后,你就可以通过输入[[格式化笔记#^quote-of-the-day]]来链接到这个块。

quote-of-the-day

需要注意的是,块标识符只能由拉丁字母、数字和短横线组成。

提示:可以使用[[^^块标识符]]语法来在整个仓库中搜索所要链接的块。

注意:块引用是 Obsidian 特有的语法,其不是标准的 Markdown 语法。因此,包含块引用的链接在其他笔记软件无法生效。

更改链接的锚文本

默认情况下,Obsidian 会显示链接本身的内容。但有时候,希望链接能显示其他的内容(比如链接到别名的时候)。

对于 Wiki 格式链接:

你可以使用竖线(|)来更改用于链接的锚文本。

例如,[[内部链接|自定义锚文本]] 这样的链接将显示为 自定义锚文本

对于 Markdown 格式链接:

你在方括号([])里修改锚文本。

例如,[自定义锚文本](Obsidian.md) 将显示为 自定义锚文本

例如,[什么是 Obsidian](Obsidian.md) 将显示 什么是 Obsidian

预览链接的文件

要预览所链接的文件,需要启用 页面预览 插件(默认启动的)。

要预览所链接的文件,按住Ctrl(或macOS上的Cmd)并将光标悬停在链接上。这样,所链接文件的内容就会自动浮现在光标旁边。

插入文件

在 Obsidian 中,你可以通过在笔记内插入(嵌入)别的文件,从而实现复用仓库内的内容。

要在当前笔记中插入文件,在内部链接前加上感叹号(!)即可。目前,Obsidian 仅支持对特定文件格式的插入。

Obsidian 支持以下文件格式:

  1. Markdown 文件:md
  2. 图像文件:avifbmpgifjpegjpgpngsvgwebp
  3. 音频文件:flacm4amp3oggwavwebm3gp
  4. 视频文件:mkvmovmp4ogvwebm
  5. PDF 文件:pdf

如何在笔记中插入上述文件,见插入文件

在当前笔记中插入笔记

要在当前笔记中插入另一篇笔记,你只需要在链接这篇笔记的语法前加一个感叹号:

![[插入笔记的标题]]

也可以插入特定笔记中的标题,也是加上一个感叹号即可:

![[内部链接笔记#^目标段落]]

例如:插入文件名为 Obsidian 的笔记中的一个块:

Obsidian

在笔记中插入图片

要插入图片,也是在链接图片的语法前加一个感叹号即可:

![[Engelbart.jpg]]

你可以通过在语法中添加 |640x480 来更改图片尺寸,其中 720 是宽度,400 是高度。

如果只指定了宽度,图片会根据原始长宽比进行缩放。

例如:

![[res/Pasted image 20240109205907.png | 700x400]]

Pasted image 20240109205907.png | 700x400

可以通过 markdown 链接来插入一张网络图片。这也支持设置大小的语法。

![Engelbart | 200x240](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg)

Engelbart | 200x240

在 Obsidian 中,你可以使用以下方式插入带尺寸的图片:

若考虑到文档的兼容性和移植性,尤其是在需要在不同平台间共享或发布时,建议优先使用标准 Markdown 语法或 HTML <img> 标签来控制图片尺寸。例如:

  • 标准 Markdown 图片插入:![替代文本](图片路径)
  • 使用 HTML 控制尺寸:<img src="图片路径" width="400" height="300" />

在笔记中插入音视频文件

要插入音频文件,只需要在链接音频文件前加上一个感叹号:

![[res/sound.mp3|sound]]

要插入视频文件,也是只需在连接视频文件前加一个感叹号:

![[res/无名的人.mp4|无名的人]]

在笔记中插入 PDF 文件

要插入 PDF 文件,也是加一个感叹号:

![[Document.pdf]]

你也可以插入 PDF 中的特定页,通过在链接目标后添加#page=N语法即可,其中N为页数:

![[Document.pdf#page=3]]

你还可以为插入的 PDF 阅读器指定高度(以像素为单位),通过在链接中添加#height=[数字]。例如:

![[Document.pdf#height=400]]

在笔记中插入列表

要在当前笔记中插入其他笔记中的列表,首先需要为这个列表添加一个块标识符

然后使用块标识符链接到列表,并加上感叹号即可:

![[My note#^my-list-id]]

例如:

  • 列表项 1
  • 列表项 2

^my-list-id

通过输入 ![[格式化笔记#^my-list-id]] 来链接到这个块。

插入搜索结果

要在笔记中嵌入搜索结果,你需要添加一个 query 代码块,然后输入搜索式

```query
搜索词一 OR 搜索词二
```

上面的语法效果如下:

搜索词一 OR 搜索词二

提示:Obsidian 发布服务 暂时不支持插入搜索结果。仅在本地生效。

外部链接

如果要链接到外部 URL,可以通过在方括号([ ])中填入描述链接的文本,然后在括号中(())添加URL来创建外部链接。

[Obsidian帮助](https://help.obsidian.md)

链接效果:Obsidian帮助

你也可以通过 Obsidian URI 创建指向其他仓库的文件的外部链接。

[笔记](obsidian://open?vault=主仓库&file=笔记.md)

在链接中转义空格

如果你的 URL 包含空格,必须用 %20 替换它们。

[我的 笔记](obsidian://open?vault=主仓库&file=我的%20笔记.md)

你也可以用尖括号(< >)包裹 URL 进行转义。

[我的 笔记](<obsidian://open?vault=主仓库&file=我的 笔记.md>)

插入图片

可以通过在外部链接前加上 ! 符号来在笔记中插入外部图片。

如果要添加来自仓库内部的图片,也可以使用嵌入图片语法

上文已经介绍过:在笔记中插入图片

使用 HTML 语法

Obsidian 支持 HTML 语法,例如,插入图片,嵌入网页等。但是,在笔记中使用 HTML 也伴随着一定的风险。为了防止恶意代码造成风险,Obsidian 会对笔记中的 HTML 进行限制。

举例

<script>元素通常允许在加载时运行 JavaScript。如果 Obsidian 不对 HTML 进行限制,攻击者可能会让你粘贴包含 JavaScript 的文本,从而提取你电脑中的敏感信息并发送给他们。

由于 Markdown 语法并不支持所有样式,因此有选择地使用 HTML 语法也是提升笔记质量的一种方式。

下面我们列出了一些 HTML 语法的常见用法。

注释

Markdown 注释是在笔记中添加隐藏注释的首选方式。然而,一些 Markdown 笔记的输出程序,如 Pandoc,对 Markdown 注释语法的支持有限。在这种情况下,你可以使用 <!-- HTML注释 --> 代替。

下划线

如果需要快速给笔记中的某个项目加下划线,你可以使用<u>示例</u>来创建下划线文本。

Span/Div

Span 和 div 标签可用于在所选文本应用来自CSS代码片段或自定义的样式。

例如,使用 <span style="font-family: cursive">你的文本</span> 可以让你快速地改变字体。

删除线

需要给一些文本加上删除线吗?使用<s>这个</s>来划掉它。

插入图片

img 标签可用于插入本地或在线网络图片资源。

例如:

  • 插入本地图片:
<img src="res/twintails.jpg" width="700" height="400">

twintails.jpg | 700x400

  • 插入在线图片:
<img src="https://raw.githubusercontent.com/littlekj/linkres/refs/heads/master/obsidian/1709340840209db.jpg" width="640" height="480" >

1709340840209db.jpg | 640x480

插入音频

插入视频

嵌入网页

可以使用 iframe 这种 HTML 元素来在你的笔记中嵌入网页。

要嵌入一个网页,只需在你的笔记中添加以下内容,替换想要嵌入的 网页 URL,以及自定义属性。

<iframe src="在这里插入你的URL" width="80%" height="100%"></iframe>

有些网站不允许嵌入。有些网站则可能会提供专门用于嵌入的 URL。如果网站不支持嵌入,请尝试搜索"网站名 iframe"以查找解决方法。例如,"youtube embed iframe"。

参考文档

Obsidian 官方文档

本文由作者按照 CC BY 4.0 进行授权。