写作提示
本文本身即是所有语法的 living demo——你看到的每一种语法示例,都可以直接复制到自己的文章中使用。语法说明中出现的代码块均可点击复制。
1. 双向链接(Wiki Links)
在数字花园中,文章之间可以像 Wiki 一样相互链接,建立知识网络。
基本语法
用 [[文章标题]] 包裹目标文章标题即可:
[[Obsidian 使用指南:打造你的第二大脑]]
[[本地优先:为什么我重新爱上了本地工具]]渲染效果:
带显示别名
如果想让链接文字与文章标题不同,用 | 分隔:
[[Obsidian 使用指南:打造你的第二大脑|Obsidian]]渲染效果:
别名链接特别适合长标题的短引用,或在同一篇文章中多次提及某概念时使用。
别用 aliases 字段代替这种写法
目标文章 frontmatter 里的 aliases 数组目前不生效,写了也匹配不到。要引用别名,一律用 [[完整标题|显示别名]] 这种显式写法。
链接找不到会怎样?
如果 [[文章标题]] 中的标题在博客中找不到,链接会以特殊样式呈现(虚线下划线 + 淡化透明度),提示这是一个未解析的链接。
[[一篇不存在的文章]]渲染效果:
[[一篇不存在的文章]]
2. Callout 容器
用 ::: 包裹内容块,并在 ::: 后指定类型,可创建醒目的信息提示框。
支持的类型
| 类型 | 用途 | 颜色倾向 |
|---|---|---|
note | 普通备注 | 绿色 |
tip | 技巧提示 | 绿色 |
abstract | 摘要/总结 | 蓝色 |
warning | 警告注意 | 黄色 |
bug | BUG 提醒 | 红色 |
example | 示例说明 | 紫色 |
question | 问题思考 | 橙色 |
success / done | 完成状态 | 绿色 |
info | 一般信息 | 蓝色 |
示例
实用技巧
同时按下 Ctrl + Shift + P(Mac 为 Cmd + Shift + P)打开命令面板,可以快速搜索所有可用命令,无需记住快捷键。
注意事项
Git 提交信息应当简洁明了,第一行不超过 50 个字符,详细说明放在第二行。
已知问题
在某些 Android 设备上,深色模式的切换可能有 1-2 秒的延迟。这是由于系统级 CSS 变量刷新机制导致的,暂无完美解决方案。
核心要点
本地优先的核心思想:将数据的所有权和控制权归还给用户。云端同步是可选的备份手段,而非数据的唯一真实来源。
Callout 的标记语法示例:
:::tip[小技巧]
这是提示框的内容
:::思考一下
为什么大多数笔记软件默认将数据存储在服务器上,而不是本地?这反映了怎样的产品设计哲学?
嵌套列表
Callout 容器内可以正常使用 Markdown 语法,包括嵌套列表:
多层级示例
- 第一步:打开编辑器
- 确保已安装最新版本
- 检查插件兼容性
- 第二步:配置主题
- 选择护眼的配色方案
- 调整字体大小
- 第三步:开始写作
- 先列出大纲
- 再逐段填充内容
3. 脚注(Footnotes)
脚注用于在正文中添加补充说明或引用来源,而不打断阅读流。
基本语法
在需要添加脚注的位置使用 [^1] 标记,在文末用 [^1]: 定义内容:
鲁迅先生曾说过,时间就像海绵里的水,只要愿意挤,总还是有的 [^1]。
[^1]: 出自鲁迅《且介亭杂文》,原文为:"时间就是性命。无端的空耗别人的时间,其实是无异于谋财害命的。"渲染效果:
鲁迅先生曾说过,时间就像海绵里的水,只要愿意挤,总还是有的 1。
多次引用同一脚注
同一脚注可以在文中多次引用,使用相同的编号:
研究 [^2] 表明,写作时先列提纲可以显著提升文章逻辑性 [^2]。
[^2]: Kellogg, R. T. (2008). Training writing skills: A cognitive development perspective.渲染效果:
4. 文本高亮(Highlight)
用双等号 == 包裹文字,可以标记出重点内容,视觉上以黄色背景高亮:
这是普通文字,这是 ==需要强调的重点==,继续正文。渲染效果:
这是普通文字,这是 需要强调的重点,继续正文。
使用场景
- 关键词汇
- 核心概念
- 重要结论
- 待复习内容
写作建议
高亮应克制使用。如果一篇文章中高亮过多,反而失去强调效果。建议每篇 500 字文章不超过 3-5 处高亮。
5. Emoji 快捷语法
输入 :emoji_name: 即可插入对应表情,比直接输入 Emoji 更具可读性:
| 语法 | 效果 | 语法 | 效果 |
|---|---|---|---|
:smile: | 😄 | :rocket: | 🚀 |
:book: | :book: | :bulb: | 💡 |
:warning: | ⚠️ | :bug: | 🐛 |
:fire: | 🔥 | :star: | ⭐ |
:chart_with_upwards_trend: | 📈 | :key: | 🔑 |
:coffee: | ☕ | :art: | 🎨 |
常见的 Emoji 名称大多可以直接使用。如果不确定某个 Emoji 的名称,可以尝试 :emoji_ + Tab 让编辑器补全。
6. 组合使用
各种语法可以自由组合,创造丰富的表达层次:
一个完整示例
在 本地优先:为什么我重新爱上了本地工具 一文中,我们探讨了 数据主权 的概念3。
核心观点是:用户应当 拥有自己的数据,而非租借服务商的存储空间。
这与 Obsidian 使用指南:打造你的第二大脑 中倡导的 本地优先、工具为辅 理念高度一致。
7. 完整对照表
| 功能 | 语法 | 示例 |
|---|---|---|
| Wiki 链接 | [[标题]] | [[Obsidian 使用指南:打造你的第二大脑]] |
| Wiki 别名 | [[标题|别名]] | [[Obsidian 使用指南:打造你的第二大脑|Obsidian]] |
| Callout | :::类型[标题]\n内容\n::: | :::tip[提示]\n内容\n::: |
| 脚注引用 | [^n] | [^1] |
| 脚注定义 | [^n]: 说明 | [^1]: 这是脚注 |
| 高亮 | ==文字== | ==重点== |
| Emoji | :name: | :rocket: |
| 粗体 | **文字** | **粗体** |
| 斜体 | *文字* | *斜体* |
| 代码 | `code` | `code` |
| 链接 | [文字](url) | [Google](https://google.com) |
8. 定义列表(Definition List)
术语和其定义可以用自然的方式写成列表,适合技术文档和概念解释。
语法
一行写术语,下一行以 : 开头写定义:
系统一
: 自动运行的快思考,不需要刻意努力
: 擅长模式识别和直觉判断
系统二
: 需要集中注意力的慢思考
: 负责复杂计算和逻辑推理渲染效果
- 系统一
- 自动运行的快思考,不需要刻意努力
- 擅长模式识别和直觉判断
- 系统二
- 需要集中注意力的慢思考
- 负责复杂计算和逻辑推理
多术语
每个术语自动生成独立的 <dl> 块,术语之间保持分隔:
番茄工作法
: 一种时间管理方法,以 25 分钟为一个专注时段
: 由弗朗西斯科·西里洛于 1992 年发明
深度工作
: 在无干扰状态下专注进行的职业活动
: 使个人的认知能力达到极限渲染效果:
- 番茄工作法
- 一种时间管理方法,以 25 分钟为一个专注时段
- 由弗朗西斯科·西里洛于 1992 年发明
- 深度工作
- 在无干扰状态下专注进行的职业活动
- 使个人的认知能力达到极限
定义列表支持多行定义——连续多个 : 开头的段落会自动合并到同一个术语下。
9. 版本日志与文章关联
更新日志页(生长年轮)不只是版本记录——每个版本还可以关联一篇「详解文章」,把一次更新的来龙去脉讲清楚。这依赖 post 字段。
基本用法
编辑 src/data/changelog.json,在版本对象里加一个 post 字段,指向对应文章的路径:
{
"version": "1.9.0",
"date": "2026-08-15",
"tag": "功能",
"title": "划词高亮读书笔记 + 搜索升级 Pagefind",
"post": "/blog/reading-notes-and-pagefind-search/",
"changes": [ ]
}post的值是文章路径,以/开头并以/结尾,指向src/content/blog/下的某篇文章- 添加后,更新日志页会在该版本卡片底部显示 「阅读这篇更新的详解 →」 链接
- 适合在大版本更新后写一篇介绍文章,然后在 changelog 里指过去;纯修 bug 的小版本可以不加
版本号规则
博客版本号遵循语义化约定,与更新日志页的「里程碑」标记一一对应:
- 发布(主题正式发布、重大上线)变更第一位:
1.9.x → 2.0.0 - 里程碑(新功能、大改版)变更第二位:
1.8.x → 1.9.0 - 其他更新(修 bug、小优化)只变更最后一位:
1.9.0 → 1.9.1 - 次版本为
0(如1.9.0、2.0.0)会在更新日志页自动标记为 「里程碑」
写作建议
给每个里程碑版本(X.Y.0)写一篇详解文章,并用 post 字段关联起来——读者在看更新日志时能一键读到设计思路,而不是面对一条条干巴巴的变更列表。
10. 阅读路径字段(TL;DR / 前置后续 / 继续阅读)
前面九节讲的都是正文里的写法。还有一组字段写在 frontmatter 里,控制的是文章开头和结尾长什么样——也就是读者要不要读下去、读完之后往哪走。
---
type: 'case-study'
tldr: |
第一句给结论,不铺垫。
第二句说清这篇解决什么问题。
第三句写最终判断。
prerequisite: 'slug-of-previous'
followUp: 'slug-of-next'
readNext: ['slug-a', 'slug-b']
postscript: |
发布之后又遇到了什么,补在这里。
---| 字段 | 出现在哪 | 不填会怎样 |
|---|---|---|
type | 编号行徽标 | 不显示徽标 |
tldr | 正文之前,左色条块 | 不显示该块 |
prerequisite | 正文之前「阅读路径 · 前置」 | 自动取同系列上一篇 |
followUp | 正文之前「阅读路径 · 后续」 | 自动取同系列下一篇 |
readNext | 结尾「继续阅读」 | 退而显示同系列下一篇;再没有才用时间序前后篇 |
postscript | 正文之后,虚线卡片 | 不显示该块 |
几个要点:
tldr和postscript是多行文本,用|开头,内容必须缩进对齐prerequisite/followUp表达的是文章之间的关系(前置 → 当前 → 后续),不是本文的章节;正文内部的导航只由右侧目录负责prerequisite/followUp/readNext填的都是 slug(文件名去掉.md),不是标题;写错不报错,会被静默忽略type七类的选择和完整示例见 云图札记博文写作规范
值得手动填的两个
prerequisite / followUp 有同系列兜底,postscript 本来就不是每篇都有。真正值得花时间的是 tldr 和 readNext——前者决定读者读不读,后者决定他会不会读第二篇。这两处是系统里唯一优先采信人工判断的地方。
常见问题
Wiki 链接支持中文标题吗?
支持。直接用中文标题即可,如 [[本地优先:为什么我重新爱上了本地工具]]。系统会自动在前台匹配对应的 slug。
Callout 容器能嵌套使用吗?
不支持在同一个 Callout 内直接嵌套另一个 Callout。如需分层,建议用列表或分段落实现。
脚注会显示在页面哪个位置?
脚注会自动渲染在文章末尾,按照编号顺序排列。移动端会确保脚注区域可滚动可见。
高亮的颜色可以自定义吗?
当前高亮使用浏览器默认的 <mark> 样式(黄色背景)。在后续版本中会支持通过 CSS 变量自定义颜色。