Skip to content

Callout 语法

Callout(标注框)是 Obsidian 中一种特殊的语法,可以创建带有图标和颜色的提示框,让重要信息更加突出和直观。

基本语法

Obsidian 使用以下语法创建 Callout:

markdown
> [!type] 标题
> 内容

VitePress 与 Obsidian 语法差异

本文档网站使用 VitePress 的 ::: 语法渲染 Callout,但 Obsidian 中应使用 > [!type] 语法。以下示例均使用 Obsidian 语法。

基本示例

markdown
> [!note] 笔记标题
> 这是一条笔记内容,可以包含多行文字。
> 第二行内容。

无标题

省略标题时,仅显示类型图标:

markdown
> [!note]
> 没有标题的 Callout

支持的类型

基础类型

类型图标用途
note📝一般笔记
infoℹ️信息提示
tip💡实用技巧
warning⚠️警告注意
example📋示例说明
quote💬引用内容

额外类型

类型图标用途
abstract📋摘要总结
question问题疑问
success成功完成
failure失败错误
danger🔥严重警告
bug🐛Bug 记录
todo✔️待办事项
important重要强调
hint🔍提示暗示
check检查确认
help帮助说明
caution⚠️小心注意

可折叠 Callout

使用 +- 控制折叠状态:

默认折叠

markdown
> [!note]- 点击展开
> 这部分内容默认折叠,点击标题可以展开查看。
> 适合放补充说明或不紧急的细节。

默认展开

markdown
> [!note]+ 点击折叠
> 这部分内容默认展开,点击标题可以折叠。
> 适合放重要但较长的补充内容。

使用场景

可折叠 Callout 特别适合:

  • 较长的代码示例
  • 补充说明和细节
  • 进阶内容(初学者可跳过)
  • 答案和解析

嵌套 Callout

Callout 可以嵌套使用,通过增加 > 层级:

markdown
> [!question] 问题
> 如何在 Obsidian 中管理多个项目?
>
> > [!tip] 解决方案
> > 推荐使用 PARA 方法,按项目和领域分类管理。

嵌套限制

Obsidian 支持多层嵌套,但建议不超过 3 层,否则在阅读模式下显示效果不佳。

在 Callout 中使用格式

Callout 内部支持完整的 Markdown 格式:

列表

markdown
> [!todo] 今日任务
> - [ ] 完成报告
> - [ ] 回复邮件
> - [x] 参加会议

代码

markdown
> [!example] 代码示例
> ```python
> def hello():
>     print("Hello, Obsidian!")
> ```

表格

markdown
> [!info] 数据表
>
> | 项目 | 状态 |
> |------|------|
> | A | 完成 |
> | B | 进行中 |

链接

markdown
> [!tip] 参考链接
> 详见 [[高级搜索技巧]] 和 [[模板系统]]

实用模式

知识卡片

markdown
> [!note] 概念:双向链接
> 双向链接是 Obsidian 的核心功能,当你创建一个指向笔记 B 的链接时,笔记 B 的反向链接面板会自动显示来自笔记 A 的引用。
>
> **关键点**
> - 链接是双向的,无需手动维护
> - 通过反向链接面板查看
> - 知识图谱中可视化展示

问答模式

markdown
> [!question] 什么是 Zettelkasten?
> Zettelkasten 是一种笔记方法,核心原则是每条笔记只包含一个原子想法,并通过链接建立想法之间的关系。

> [!check] 答案
> Zettelkasten(卡片盒笔记法)由德国社会学家 Niklas Luhmann 发明,他使用这个方法完成了 70 多本书的写作。

警告提示

markdown
> [!warning] 同步冲突
> 多设备同时编辑同一笔记可能导致冲突。建议:
> - 编辑前等待同步完成
> - 避免在手机和电脑上同时编辑
> - 定期检查冲突文件

> [!danger] 数据丢失风险
> 不要直接删除 `.obsidian` 文件夹,这会导致所有配置和插件数据丢失!

进阶折叠

markdown
> [!tip]- 进阶:Dataview 查询语法
> ```dataview
> TABLE status, due-date
> FROM "项目"
> WHERE status = "进行中"
> SORT due-date ASC
> ```
>
> 更多 Dataview 用法参考 [[Dataview 实战]]

自定义 Callout

通过 CSS 代码片段自定义 Callout 样式:

修改颜色

.obsidian/snippets/ 中创建 CSS 文件:

css
/* 自定义 note 类型颜色 */
.callout[data-callout="note"] {
  --callout-color: 50, 150, 250;
}

/* 自定义 warning 类型颜色 */
.callout[data-callout="warning"] {
  --callout-color: 250, 150, 50;
}

自定义图标

css
.callout[data-callout="my-type"] {
  --callout-icon: lucide-star;
}

创建新类型

css
.callout[data-callout="definition"] {
  --callout-color: 100, 200, 100;
  --callout-icon: lucide-book-open;
}

然后在笔记中使用:

markdown
> [!definition] 定义
> 这是一个自定义的 definition 类型 Callout。

启用 CSS 代码片段

创建 CSS 文件后,需要在 设置 → 外观 → CSS 代码片段 中启用。

常见问题

Callout 不显示?

  1. 确认 > [!type] 语法正确,! 不可省略
  2. 确认每一行都有 > 前缀
  3. 空行也需要 > 前缀

Callout 内换行?

在 Callout 中换行只需在新行添加 > 前缀:

markdown
> [!note] 多行内容
> 第一行
>
> 第二行(中间空行也有 > 前缀)

与引用块的区别?

普通引用块使用 > 不带 [!type]

markdown
> 这是普通引用,没有图标和颜色

> [!quote] 这是 Callout,有图标和颜色
> 内容

相关资源

最后更新:2026年4月11日编辑此页反馈问题