Decentralization? We're still early!
課 3 的 7
In Progress

第三课 Trilium的树状结构与克隆哲学

Brave 2026-02-03

在你开始往 Trilium 里写下第一条笔记之前,我想请你思考一个问题:

📌 知识在你脑海中是什么形态?是一本本分门别类的书?是一张张互相连接的网?还是一棵不断生长的树?

不同的笔记工具对这个问题有不同的回答:

  • Notion 认为知识是数据库中的记录,可以用不同的视图呈现
  • Obsidian 认为知识是相互链接的节点,形成一张网络
  • Logseq 认为知识是大纲式的块,层层嵌套
  • Trilium 认为知识是一棵可以无限生长的树,且树枝可以"分身"

这一节,我们将深入理解 Trilium 独特的知识组织哲学——树状结构与**克隆(Clone)**功能,并学习如何设计属于你自己的知识架构。


一、理解 Trilium 的树状结构

1.1 一切皆笔记

在 Trilium 中,有一个核心设计理念:

🌲 没有"文件夹"的概念,一切都是"笔记"。

这意味着:

  • 你创建的每一个节点都是笔记
  • "文件夹"只是内容为空(或包含子笔记列表)的笔记
  • 笔记可以包含子笔记,形成无限层级的树
┌─────────────────────────────────────────────────────────────┐
│                  Trilium 的世界观                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   传统文件系统:                                              │
│   📁 文件夹 → 📄 文件                                        │
│   (文件夹和文件是两种不同的东西)                             │
│                                                             │
│   Trilium 的世界:                                           │
│   📝 笔记 → 📝 笔记 → 📝 笔记 → ...                         │
│   (一切都是笔记,笔记可以包含子笔记)                         │
│                                                             │
│   好处:                                                     │
│   ✅ 统一的操作方式                                          │
│   ✅ "文件夹"也可以有内容                                    │
│   ✅ 任意层级都可以添加属性、链接、附件                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.2 树的深度与广度

Trilium 支持任意深度的树状结构。理论上,你可以创建无限层级的嵌套。但在实践中,需要在"深度"和"广度"之间找到平衡。

🌲 过深的树

📁 知识库
└── 📁 计算机科学
    └── 📁 编程语言
        └── 📁 Python
            └── 📁 Web框架
                └── 📁 Django
                    └── 📁 视图层
                        └── 📁 类视图
                            └── 📝 DetailView 详解   ← 需要点击8层才能到达

问题:层级过深导致导航困难,每次查找都要层层展开。

🌳 过宽的树

📁 知识库
├── 📝 Python 笔记1
├── 📝 Python 笔记2
├── 📝 Django 入门
├── 📝 Django 进阶
├── 📝 Flask 基础
├── 📝 JavaScript 笔记
├── ... (100+ 笔记平铺)   ← 一个层级下太多笔记

问题:缺乏结构,难以快速定位,视觉上也很混乱。

✅ 平衡的树

📁 知识库
├── 📁 编程语言
│   ├── 📁 Python
│   │   ├── 📝 基础语法
│   │   ├── 📝 高级特性
│   │   └── 📁 Web框架
│   │       ├── 📝 Django 详解
│   │       └── 📝 Flask 详解
│   └── 📁 JavaScript
│       ├── 📝 ES6+ 特性
│       └── 📝 Node.js
└── 📁 项目实战
    └── ...

建议

  • 📏 层级深度:通常控制在 3-5 层
  • 📊 每层宽度:每个节点下不超过 15-20 个子笔记
  • 🔍 配合搜索:深层内容通过搜索快速定位

1.3 笔记类型

Trilium 支持多种笔记类型,每种类型有不同的用途:

类型图标用途示例
Text📝富文本笔记,最常用读书笔记、学习笔记
Code💻代码片段,支持语法高亮代码示例、配置文件
Render HTML🌐渲染 HTML 内容自定义页面、仪表盘
Relation Map🗺️关系图,可视化节点关系人物关系图、概念图
Book📖将子笔记渲染为书籍电子书、长文档
Canvas🎨画布,自由排列内容思维导图、流程图
Web View🔗嵌入网页外部工具、在线文档
File📎附件文件PDF、图片、压缩包

💡 提示:虽然类型很多,但 Text 类型能满足 90% 以上的需求。不必追求使用所有类型,根据实际需要选择即可。


二、克隆(Clone):Trilium 的灵魂功能

2.1 什么是克隆?

克隆(Clone) 是 Trilium 最独特、最强大的功能,也是它区别于所有其他笔记软件的核心特性。

🔀 克隆的定义:让同一个笔记同时存在于多个位置,而不是复制多份。所有位置共享同一份内容——修改任何一个,所有位置都会同步更新。

用一个生活中的比喻来理解:

┌─────────────────────────────────────────────────────────────┐
│                     克隆 vs 复制                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  📋 复制(Copy):                                           │
│     像复印一份文件                                           │
│     原件和副本是两份独立的文件                                │
│     修改副本不影响原件                                       │
│                                                             │
│  🔀 克隆(Clone):                                          │
│     像在多个书架上放置指向同一本书的"传送门"                   │
│     不管从哪个书架进入,看到的都是同一本书                     │
│     在任何一个位置修改,所有位置都会变化                       │
│                                                             │
│  更技术的比喻:                                              │
│     复制 = 创建新文件(deep copy)                           │
│     克隆 = 创建硬链接(hard link)                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2.2 为什么克隆如此重要?

让我用一个实际场景来说明。

假设你在学习 HTTP 协议,这个知识点可以从多个角度归类:

归类角度所属分类
学科分类计算机网络 → 应用层协议
技能分类Web 开发 → 前后端通信
场景分类面试准备 → 网络基础
项目分类某个 Web 项目 → 技术文档

传统笔记软件的困境

方案 A:只放一处
📁 计算机网络/应用层协议/
└── 📝 HTTP 协议详解

❌ 问题:在"Web开发"和"面试准备"目录下找不到这篇笔记

───────────────────────────────────────

方案 B:复制多份
📁 计算机网络/应用层协议/
└── 📝 HTTP 协议详解(副本1)

📁 Web开发/前后端通信/
└── 📝 HTTP 协议详解(副本2)

📁 面试准备/网络基础/
└── 📝 HTTP 协议详解(副本3)

❌ 问题:
- 修改一处,其他地方不会同步
- 时间久了,各副本内容不一致
- 浪费存储空间

───────────────────────────────────────

方案 C:只用链接
📁 计算机网络/应用层协议/
└── 📝 HTTP 协议详解

📁 Web开发/前后端通信/
└── 📝 [链接] → HTTP 协议详解

❌ 问题:
- 链接不体现层级归属关系
- 在"Web开发"目录下展开时看不到这篇笔记
- 链接可能失效

Trilium 的克隆方案

📁 计算机网络/应用层协议/
└── 📝 HTTP 协议详解 ⭐

📁 Web开发/前后端通信/
└── 📝 HTTP 协议详解 ⭐  ←──┐
                            │ 同一篇笔记的四个克隆
📁 面试准备/网络基础/        │ 内容完全同步
└── 📝 HTTP 协议详解 ⭐  ←──┤
                            │
📁 某Web项目/技术文档/       │
└── 📝 HTTP 协议详解 ⭐  ←──┘

✅ 优点:
- 在任何目录下都能直接看到这篇笔记
- 体现了笔记在多个分类中的归属关系
- 修改任意一处,所有位置同步更新
- 只存储一份内容,不浪费空间

2.3 如何使用克隆功能

🖱️ 方法一:快捷键(推荐)

  1. 选中要克隆的笔记
  2. Ctrl+C(或 Cmd+C
  3. 导航到目标位置
  4. Ctrl+V(或 Cmd+V

📌 重要:在 Trilium 中,Ctrl+C 默认就是克隆操作,而不是复制。这是 Trilium 的设计哲学——克隆应该是常态。

🖱️ 方法二:右键菜单

  1. 右键点击要克隆的笔记
  2. 选择 "Clone to..."
  3. 在弹出的对话框中搜索目标位置
  4. 确认克隆

🖱️ 方法三:拖拽 + 快捷键

  1. 按住 Ctrl 键(或 Cmd 键)
  2. 拖拽笔记到目标位置
  3. 释放鼠标,完成克隆

2.4 识别克隆笔记

克隆后的笔记会有视觉标识:

  • ⭐ 笔记标题旁边会显示一个小星号特殊图标
  • 在笔记详情的右侧边栏中,可以看到 "Note Paths"(笔记路径) 部分,列出该笔记的所有位置
┌─────────────────────────────────────┐
│  📝 HTTP 协议详解                    │
├─────────────────────────────────────┤
│                                     │
│  Note Paths:                        │
│  ├── 📁 知识库 / 计算机网络 / ...    │
│  ├── 📁 知识库 / Web开发 / ...       │
│  ├── 📁 知识库 / 面试准备 / ...      │
│  └── 📁 项目 / 某Web项目 / ...       │
│                                     │
│  共 4 个位置                         │
│                                     │
└─────────────────────────────────────┘

2.5 克隆 vs 复制(Duplicate)

如果你确实需要创建一个独立的副本(而非克隆),可以使用 Duplicate(复制) 功能:

操作快捷键效果
Clone(克隆)Ctrl+CCtrl+V同一笔记出现在多个位置,内容同步
Duplicate(复制)右键 → Duplicate创建独立副本,内容不同步

💡 使用场景:当你需要基于现有笔记创建一个相似但独立的新笔记时,使用 Duplicate。

2.6 克隆的高级用法

📚 用法一:构建多维度知识体系

📁 知识库(按学科分类)
├── 📁 计算机科学
│   └── 📝 设计模式 - 单例模式 ⭐
└── 📁 软件工程
    └── 📝 设计模式 - 单例模式 ⭐

📁 项目(按项目分类)
└── 📁 电商系统重构
    └── 📁 技术方案
        └── 📝 设计模式 - 单例模式 ⭐

📁 学习计划(按时间分类)
└── 📁 2025年Q1
    └── 📁 设计模式专项
        └── 📝 设计模式 - 单例模式 ⭐

效果:同一篇笔记按学科、项目、时间三个维度组织,任何角度都能找到它。

📖 用法二:读书笔记的章节引用

📁 读书笔记
└── 📁 《卡片笔记写作法》
    ├── 📝 第1章:写作的基本单位
    ├── 📝 第2章:卡片盒的原理
    └── 📝 第3章:永久笔记

📁 方法论
└── 📁 写作方法
    └── 📝 第3章:永久笔记 ⭐  ← 克隆到这里,便于主题式学习

🗃️ 用法三:归档而不破坏结构

根据 少数派的建议

"如果在【归档】节点下放置某篇笔记的克隆,那么这篇笔记的其他所有克隆位置都会被归档。所以更推荐的做法是在【归档】节点下建立要归档的笔记的克隆,而不是直接将笔记拖进去。"

📁 进行中的项目
└── 📁 项目A
    └── 📝 项目A需求文档 ⭐

📁 归档
└── 📁 2024年项目
    └── 📝 项目A需求文档 ⭐  ← 克隆到归档,原位置保持不变

# 这样做的好处:
# - 原有的知识结构不被破坏
# - 可以通过"归档"目录快速查看历史项目
# - 未来需要时,直接在归档中找到

三、知识架构设计方法论

3.1 常见的知识分类方法

在设计你的 Trilium 知识架构之前,了解一些经典的分类方法会很有帮助:

📊 方法一:MECE 原则

MECE(Mutually Exclusive, Collectively Exhaustive)是麦肯锡提出的分类思维方法:

  • 相互独立(ME):各分类之间不重叠
  • 完全穷尽(CE):所有分类加起来覆盖全部内容
传统 MECE 分类的困境:

📁 按学科分
├── 📁 计算机
├── 📁 数学
└── 📁 物理

问题:机器学习放哪里?它同时属于计算机和数学

Trilium 的解决方案:用克隆打破 MECE 的限制
├── 📁 计算机/人工智能/
│   └── 📝 机器学习基础 ⭐
└── 📁 数学/统计学/
    └── 📝 机器学习基础 ⭐

结论:在 Trilium 中,你不必强求 MECE,因为克隆功能允许同一笔记存在于多个分类。

📂 方法二:PARA 方法

PARA 方法 是 Tiago Forte 在《Building a Second Brain》中提出的知识组织框架:

类别英文含义示例
PProjects有明确目标和截止日期的任务写一篇论文、准备一场演讲
AAreas需要长期维护的领域健康、财务、职业发展
RResources持续感兴趣的主题摄影技巧、烹饪食谱
AArchives已完成或不再活跃的内容完成的项目、过时的资料

PARA 在 Trilium 中的实现

📁 root
├── 📁 1-Projects(项目)
│   ├── 📁 [2025-03] Trilium 课程开发
│   ├── 📁 [2025-04] 个人网站重构
│   └── 📁 [2025-05] 读书会分享
│
├── 📁 2-Areas(领域)
│   ├── 📁 健康管理
│   ├── 📁 财务规划
│   ├── 📁 职业发展
│   └── 📁 家庭生活
│
├── 📁 3-Resources(资源)
│   ├── 📁 编程技术
│   ├── 📁 产品设计
│   ├── 📁 写作技巧
│   └── 📁 摄影笔记
│
└── 📁 4-Archives(归档)
    ├── 📁 2024年项目
    └── 📁 过期资料

PARA + 克隆的威力

📁 1-Projects/Trilium课程开发/
└── 📝 Trilium 克隆功能详解 ⭐

📁 3-Resources/编程技术/知识管理工具/
└── 📝 Trilium 克隆功能详解 ⭐

# 同一篇笔记:
# - 在 Projects 中作为当前项目的一部分
# - 在 Resources 中作为长期知识积累
# - 项目结束后,Projects 中的克隆可以删除,Resources 中的保留

🧠 方法三:卡片盒方法(Zettelkasten)

这是德国社会学家尼克拉斯·卢曼(Niklas Luhmann)发明的笔记方法,强调:

  • 原子化:每个笔记只包含一个想法
  • 链接:笔记之间通过链接建立联系
  • 涌现:知识结构从链接中自然涌现

在 Trilium 中实践卡片盒方法

📁 Zettelkasten
├── 📁 永久笔记(Permanent Notes)
│   ├── 📝 202501151430 知识的网络效应
│   ├── 📝 202501151445 克隆与链接的区别
│   └── 📝 202501151500 树状结构的局限性
│
├── 📁 文献笔记(Literature Notes)
│   └── 📁 《卡片笔记写作法》
│       ├── 📝 摘录:什么是永久笔记
│       └── 📝 摘录:卢曼的工作流程
│
└── 📁 闪念笔记(Fleeting Notes)
    └── 📝 今日随想...

💡 Trilium 的优势:通过克隆,你可以让一条永久笔记同时出现在多个主题分类下,实现卡片盒方法与层级结构的融合。

3.2 设计你的知识架构

基于以上方法论,我推荐一个适合 Trilium 的混合架构

📁 root
│
├── 📁 🎯 Projects(当前项目)
│   └── 按项目组织,有明确目标和期限
│
├── 📁 📚 Knowledge(知识库)
│   ├── 📁 按学科分类
│   │   ├── 📁 计算机科学
│   │   ├── 📁 数学
│   │   └── 📁 ...
│   │
│   └── 📁 按主题分类
│       ├── 📁 个人成长
│       ├── 📁 投资理财
│       └── 📁 ...
│
├── 📁 📅 Journal(日记)
│   └── 按年/月/日组织的日记
│
├── 📁 📖 Reading(读书笔记)
│   └── 按书籍组织
│
├── 📁 💼 Work(工作相关)
│   ├── 📁 会议记录
│   ├── 📁 项目文档
│   └── 📁 ...
│
├── 📁 🔧 Templates(模板)
│   └── 各种笔记模板
│
└── 📁 🗄️ Archives(归档)
    └── 已完成/不再活跃的内容

关键设计原则

  1. 顶层不超过 7 个:符合人类短期记忆的 7±2 法则
  2. 使用 emoji 前缀:视觉上快速区分不同类别
  3. 克隆打破边界:知识库中的笔记可以克隆到项目中
  4. 定期归档:保持活跃区域的清爽

3.3 架构演进建议

你的知识架构不需要一开始就完美。这里有一些演进建议:

🌱 阶段一:起步(0-100 条笔记)

📁 root
├── 📁 笔记
└── 📁 日记

策略:不要过度设计,先开始记录,让结构从内容中涌现。

🌿 阶段二:成长(100-1000 条笔记)

📁 root
├── 📁 项目
├── 📁 知识库
│   └── (开始按主题分类)
├── 📁 日记
└── 📁 归档

策略:当某个目录下笔记超过 20 条时,考虑细分。开始使用克隆功能。

🌳 阶段三:成熟(1000+ 条笔记)

(使用前面推荐的完整架构)

策略

  • 建立完善的模板系统
  • 使用属性(Attributes)进行元数据管理
  • 定期重构和整理

四、实战:构建你的第一棵知识树

4.1 创建根结构

让我们动手实践。首先创建顶层结构:

  1. 打开 Trilium,你会看到默认的 root 笔记
  2. 创建顶层分类
    • 右键 root → Create child note
    • 依次创建以下笔记(类型选择 Text):
      • 🎯 Projects
      • 📚 Knowledge
      • 📅 Journal
      • 📖 Reading
      • 🔧 Templates
      • 🗄️ Archives
  3. 设置显示顺序
    • 可以通过拖拽调整顺序
    • 或使用属性 #sortOrder 设置固定顺序

4.2 创建知识库结构

📚 Knowledge 下创建子分类:

📚 Knowledge
├── 📁 计算机科学
│   ├── 📁 编程语言
│   ├── 📁 数据结构与算法
│   ├── 📁 操作系统
│   └── 📁 计算机网络
│
├── 📁 个人成长
│   ├── 📁 学习方法
│   ├── 📁 时间管理
│   └── 📁 思维模型
│
└── 📁 生活技能
    ├── 📁 健康管理
    └── 📁 财务管理

4.3 创建日记结构

Trilium 内置了强大的**日记(Journal)**功能。日记会自动按年/月/日组织。

设置日记

  1. 📅 Journal 笔记上右键
  2. 选择 "Add Label"
  3. 添加标签:#calendarRoot

这样,当你使用快捷键 Alt+O(或点击日历图标)时,Trilium 会自动在这个位置创建日记。

日记模板

  1. 🔧 Templates 下创建一个笔记,命名为 "日记模板"
  2. 写入你的日记模板内容,例如:
## 📅 今日计划

- [ ]
- [ ]
- [ ]

## ✅ 完成事项



## 💭 今日思考



## 📝 备注

  1. 为模板添加标签:#label:template
  2. 📅 Journal 上添加关系:~template=日记模板

现在,每次创建新日记时,会自动使用这个模板。

4.4 实践克隆功能

现在让我们实践克隆功能:

  1. 创建一个测试笔记
    • 📚 Knowledge/计算机科学/编程语言 下创建 "Python 基础"
  2. 克隆到项目中
    • 假设你有一个学习 Python 的项目
    • 🎯 Projects 下创建 "Python 学习计划"
    • 选中 "Python 基础" 笔记,按 Ctrl+C
    • 导航到 "Python 学习计划",按 Ctrl+V
  3. 验证克隆
    • 点击克隆后的笔记,查看右侧边栏的 "Note Paths"
    • 应该看到这个笔记有 2 个位置
  4. 测试同步
    • 在任意一个位置修改笔记内容
    • 切换到另一个位置,确认内容已同步

五、常见问题与最佳实践

5.1 何时使用克隆?何时使用链接?

场景推荐方式理由
同一知识点属于多个分类克隆体现归属关系,便于浏览
引用另一篇笔记的内容链接保持文章的独立性
创建笔记索引页链接索引页是导航,不需要克隆
项目引用知识库的资料克隆项目结束后可删除克隆

5.2 克隆过多怎么办?

如果一个笔记被克隆到太多位置(比如 10+ 个),可能说明:

  • 这个笔记的粒度太大,需要拆分
  • 或者你的分类体系需要重新审视

建议:保持每个笔记的克隆数量在 2-5 个之间。

5.3 删除克隆会怎样?

  • 删除一个克隆:笔记从该位置消失,但其他位置仍然存在
  • 删除所有克隆:只有当所有克隆都被删除时,笔记才会真正被删除(移入回收站)

安全机制:Trilium 会在删除最后一个克隆时提醒你。

5.4 移动 vs 克隆

操作效果快捷方式
移动笔记从原位置消失,出现在新位置直接拖拽
克隆笔记在原位置保留,同时出现在新位置Ctrl + 拖拽,或 Ctrl+C/V

六、本节小结

📝 核心要点回顾

  1. 一切皆笔记:Trilium 没有文件夹概念,一切都是笔记,笔记可以包含子笔记
  2. 树状结构设计
    • 控制深度(3-5 层)
    • 控制宽度(每层 15-20 个)
    • 配合搜索快速定位
  3. 克隆是灵魂功能
    • 同一笔记存在于多个位置
    • 内容完全同步
    • 打破传统分类的"非此即彼"困境
  4. 架构设计方法
    • 可参考 PARA、卡片盒等方法
    • 使用克隆融合多种分类维度
    • 架构随内容演进,不必一开始就完美

🎯 实践检查清单

完成本节学习后,请确认你已经:

📚 参考资源

回复