- 一、属性系统概述
- 1.1 什么是属性?
- 1.2 属性的两种类型
- 1.3 查看和编辑属性
- 二、标签(Labels)详解
- 2.1 标签的基本用法
- 2.2 实用标签示例
- 2.3 标签命名规范
- 2.4 系统内置标签
- 三、关系(Relations)详解
- 3.1 什么是关系?
- 3.2 关系的应用场景
- 3.3 系统内置关系
- 3.4 创建关系的操作方法
- 四、属性继承
- 4.1 什么是属性继承?
- 4.2 设置可继承属性
- 4.3 继承的实用场景
- 4.4 查看继承的属性
- 五、模板(Templates)系统
- 5.1 什么是模板?
- 5.2 创建模板
- 5.3 使用模板
- 5.4 实用模板示例
- 5.5 高级模板技巧
- 六、关系图(Relation Map)
- 6.1 什么是关系图?
- 6.2 创建关系图
- 6.3 关系图示例
- 6.4 关系图的操作技巧
- 七、搜索与属性
- 7.1 按属性搜索
- 7.2 组合搜索
- 7.3 保存搜索
- 八、本节小结
- 📝 核心要点回顾
- 🎯 实践检查清单
- 📚 参考资源
- 官方文档
- 中文教程
在前面的章节中,我们学会了用树状结构组织笔记,用克隆打破分类的边界。但如果你只是把 Trilium 当作一个"高级文件夹",那就太可惜了。
Trilium 真正强大的地方在于它的属性系统(Attributes)——这是一套让你的笔记具备"智能"的机制。
📌 通过属性系统,你可以:
- 给笔记添加元数据,实现智能筛选和搜索
- 建立笔记之间的语义关系,而不仅仅是层级关系
- 创建模板,让新笔记自动继承结构和属性
- 甚至可以用属性控制 Trilium 的行为,实现高度自定义
本节将深入讲解 Trilium 的属性系统,包括:
- 🏷️ 标签(Labels):给笔记贴标签
- 🔗 关系(Relations):建立笔记间的联系
- 📋 模板(Templates):自动化笔记创建
- 🗺️ 关系图(Relation Map):可视化知识网络
一、属性系统概述
1.1 什么是属性?
在 Trilium 中,属性(Attributes) 是附加在笔记上的键值对(key-value pairs),用于提供额外的元数据或控制笔记的行为。
┌─────────────────────────────────────────────────────────────┐
│ 属性的本质 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 笔记内容: │
│ ┌─────────────────────────────────────┐ │
│ │ # Python 入门指南 │ │
│ │ │ │
│ │ Python 是一种... │ │
│ └─────────────────────────────────────┘ │
│ │
│ 笔记属性(元数据): │
│ ┌─────────────────────────────────────┐ │
│ │ #language = Python │ ← 标签 │
│ │ #difficulty = beginner │ ← 标签 │
│ │ #year = 2025 │ ← 标签 │
│ │ ~author = 某作者笔记 │ ← 关系 │
│ │ ~relatedTo = JavaScript入门 │ ← 关系 │
│ └─────────────────────────────────────┘ │
│ │
│ 属性 = 关于笔记的"笔记" │
│ │
└─────────────────────────────────────────────────────────────┘1.2 属性的两种类型
| 类型 | 前缀 | 值类型 | 用途 |
|---|---|---|---|
| 标签(Label) | # | 文本(可选) | 分类、标记、配置 |
| 关系(Relation) | ~ | 指向另一个笔记 | 建立笔记间的联系 |
示例对比:
标签示例:
#book ← 无值标签,仅表示"这是一本书"
#year=2024 ← 有值标签,表示"年份是2024"
#rating=5 ← 有值标签,表示"评分是5"
关系示例:
~author=@张三的笔记 ← 关系,指向"张三"这个笔记
~template=@读书笔记模板 ← 关系,指向模板笔记
~relatedTo=@另一篇笔记 ← 关系,表示与另一篇笔记相关1.3 查看和编辑属性
在 Trilium 中查看和编辑属性有几种方式:
🖱️ 方式一:右侧边栏(推荐)
- 选中笔记
- 查看右侧边栏的 "Owned Attributes" 部分
- 点击 "+" 按钮添加新属性
- 点击现有属性可以编辑或删除
⌨️ 方式二:快捷键
Alt+A:打开属性编辑面板
📝 方式三:在笔记内容中定义
你也可以在笔记的开头用特殊语法定义属性:
#book #year=2024 #rating=5
~author=@张三
# 书名:XXX
正文内容...二、标签(Labels)详解
2.1 标签的基本用法
标签是最常用的属性类型,用于给笔记添加分类、标记或元数据。
📌 无值标签
用于简单的分类或标记:
#book → 标记为"书籍"
#important → 标记为"重要"
#todo → 标记为"待办"
#archived → 标记为"已归档"📊 有值标签
用于存储具体的元数据:
#year=2024 → 年份
#author=王小波 → 作者
#rating=5 → 评分
#status=reading → 状态:阅读中
#priority=high → 优先级:高
#tags=Python,Web,后端 → 多个标签(逗号分隔)2.2 实用标签示例
📚 读书笔记标签体系
📝 《沉默的大多数》
属性:
#book → 类型:书籍
#author=王小波 → 作者
#year=1997 → 出版年份
#genre=杂文 → 类型
#rating=5 → 我的评分
#status=finished → 阅读状态
#finishedDate=2025-01-15 → 读完日期💼 项目管理标签体系
📝 Trilium 课程开发
属性:
#project → 类型:项目
#status=active → 状态:进行中
#priority=high → 优先级:高
#deadline=2025-03-01 → 截止日期
#client=个人项目 → 客户/归属
#progress=60 → 进度百分比👤 人物档案标签体系
📝 张三
属性:
#person → 类型:人物
#company=ABC公司 → 公司
#role=技术总监 → 职位
#city=北京 → 城市
#firstMet=2024-06-15 → 初次见面
#tags=技术,创业,投资 → 标签2.3 标签命名规范
良好的命名规范能让你的属性系统更加一致和可维护:
| 规范 | 示例 | 说明 |
|---|---|---|
| 小驼峰命名 | #firstName, #publishYear | 多词组合时的标准命名 |
| 全小写 | #book, #important | 简单标签使用小写 |
| 避免空格 | ✅ #projectStatus ❌ #project status | 标签名不能有空格 |
| 语义清晰 | ✅ #publishYear ❌ #py | 避免过度缩写 |
2.4 系统内置标签
Trilium 有一些内置的系统标签,用于控制笔记的特殊行为:
| 标签 | 作用 | 示例用途 |
|---|---|---|
#archived | 标记为已归档 | 归档旧笔记 |
#excludeFromExport | 导出时排除 | 不导出敏感笔记 |
#run | 标记为可执行脚本 | 脚本笔记 |
#iconClass | 设置自定义图标 | #iconClass=bx bx-book |
#cssClass | 添加 CSS 类 | 自定义样式 |
#hidePromotedAttributes | 隐藏提升属性 | 简化显示 |
#readOnly | 设为只读 | 保护重要笔记 |
#calendarRoot | 日记根节点 | 设置日记位置 |
#template | 标记为模板 | 模板笔记 |
🎨 自定义图标示例
Trilium 使用 Boxicons 图标库。你可以用 #iconClass 标签自定义笔记图标:
#iconClass=bx bx-book → 📖 书籍图标
#iconClass=bx bx-code-alt → 💻 代码图标
#iconClass=bx bx-user → 👤 用户图标
#iconClass=bx bx-folder → 📁 文件夹图标
#iconClass=bx bx-star → ⭐ 星星图标
#iconClass=bx bxs-heart → ❤️ 心形图标(实心)三、关系(Relations)详解
3.1 什么是关系?
关系(Relation) 是一种特殊的属性,它的值不是文本,而是指向另一个笔记的引用。
┌─────────────────────────────────────────────────────────────┐
│ 标签 vs 关系 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 标签(Label): │
│ #author=王小波 → 值是文本"王小波" │
│ 📝 笔记 ──#author──→ "王小波"(字符串) │
│ │
│ 关系(Relation): │
│ ~author=@王小波的笔记 → 值是指向另一笔记的引用 │
│ 📝 笔记 ──~author──→ 📝 王小波(笔记) │
│ │
│ 区别: │
│ - 标签的值是静态文本 │
│ - 关系的值是动态链接,可以跳转、可以反向查询 │
│ │
└─────────────────────────────────────────────────────────────┘3.2 关系的应用场景
📚 场景一:作者与作品
📝 《黄金时代》
~author = 📝 王小波
📝 《沉默的大多数》
~author = 📝 王小波
📝 王小波
(这个笔记会自动显示所有指向它的关系)好处:
- 点击
~author可以直接跳转到作者页面 - 在作者页面可以看到他的所有作品(反向关系)
👥 场景二:人物关系网络
📝 张三
~worksAt = 📝 ABC公司
~knows = 📝 李四
~knows = 📝 王五
📝 李四
~worksAt = 📝 XYZ公司
~knows = 📝 张三
📝 ABC公司
~locatedIn = 📝 北京📖 场景三:知识点关联
📝 HTTP 协议
~prerequisite = 📝 TCP/IP 基础
~relatedTo = 📝 HTTPS
~relatedTo = 📝 RESTful API
📝 TCP/IP 基础
~prerequisite = 📝 计算机网络概述3.3 系统内置关系
Trilium 有一些内置的系统关系,用于实现特殊功能:
| 关系 | 作用 | 说明 |
|---|---|---|
~template | 指定模板 | 用于将模板应用到笔记 |
~renderNote | 指定渲染笔记 | HTML 渲染类型笔记使用 |
~runOnNoteCreation | 笔记创建时执行 | 脚本自动化 |
~runOnNoteTitleChange | 标题变化时执行 | 脚本自动化 |
~runOnAttributeChange | 属性变化时执行 | 脚本自动化 |
3.4 创建关系的操作方法
🖱️ 方法一:属性面板
- 选中笔记,打开右侧边栏
- 在 "Owned Attributes" 点击 "+"
- 选择 "Add new relation"
- 输入关系名(如
author) - 搜索并选择目标笔记
⌨️ 方法二:在笔记内容中
~author=@王小波
# 《黄金时代》读书笔记
正文...💡 提示:
@符号后面跟笔记名称,Trilium 会自动匹配。
四、属性继承
4.1 什么是属性继承?
属性继承(Attribute Inheritance) 是 Trilium 的一个强大功能:当一个属性被标记为"可继承(inheritable)"时,该属性会自动应用到所有子笔记。
┌─────────────────────────────────────────────────────────────┐
│ 属性继承示意图 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 📁 读书笔记 │
│ │ #sortOrder=alphabetical (可继承) │
│ │ #iconClass=bx bx-book (可继承) │
│ │ │
│ ├── 📝 《沉默的大多数》 │
│ │ ↑ 自动继承了 #sortOrder 和 #iconClass │
│ │ │
│ ├── 📝 《黄金时代》 │
│ │ ↑ 自动继承了 #sortOrder 和 #iconClass │
│ │ │
│ └── 📁 2024年读书 │
│ │ ↑ 自动继承了 #sortOrder 和 #iconClass │
│ │ │
│ └── 📝 《人类简史》 │
│ ↑ 也继承了!(继承是递归的) │
│ │
└─────────────────────────────────────────────────────────────┘4.2 设置可继承属性
- 选中父笔记
- 添加属性
- 勾选 "Inheritable" 选项
或者在属性语法中使用 #! 前缀表示可继承:
#!iconClass=bx bx-book → 可继承的标签
~!template=@读书笔记模板 → 可继承的关系4.3 继承的实用场景
📁 场景一:统一文件夹图标
📁 项目文档
#!iconClass=bx bx-folder-open (可继承)
├── 📁 项目A → 自动显示文件夹图标
├── 📁 项目B → 自动显示文件夹图标
└── 📁 项目C → 自动显示文件夹图标📚 场景二:读书笔记自动分类
📁 读书笔记
#!category=reading (可继承)
├── 📝 书1 → 搜索 #category=reading 时会找到
├── 📝 书2 → 搜索 #category=reading 时会找到
└── 📝 书3 → 搜索 #category=reading 时会找到🔧 场景三:子笔记自动应用模板
📁 日记
~!template=@日记模板 (可继承)
├── 📁 2025年
│ └── 📁 01月
│ ├── 📝 01日 → 自动使用日记模板
│ ├── 📝 02日 → 自动使用日记模板
│ └── ...4.4 查看继承的属性
在笔记的属性面板中,你会看到两个部分:
| 部分 | 说明 |
|---|---|
| Owned Attributes | 直接定义在该笔记上的属性 |
| Inherited Attributes | 从父笔记继承的属性 |
继承的属性通常会以浅色或斜体显示,以区别于自有属性。
五、模板(Templates)系统
5.1 什么是模板?
模板(Template) 是一种预定义的笔记结构,当你创建新笔记并应用模板时,会发生以下事情:
- ✅ 属性继承:模板的所有属性会被实例笔记继承
- ✅ 内容复制:模板的内容会被复制到新笔记(如果新笔记为空)
- ✅ 子笔记复制:模板的所有子笔记会被深度复制到新笔记
┌─────────────────────────────────────────────────────────────┐
│ 模板工作原理 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 📋 读书笔记模板 📝 《沉默的大多数》 │
│ #template ~template=读书笔记模板 │
│ #book ───→ #book (继承) │
│ #iconClass=bx bx-book #iconClass=... (继承) │
│ │
│ 内容: 内容: │
│ ## 基本信息 ## 基本信息 │
│ - 作者: - 作者:王小波 │
│ - 出版年: - 出版年:1997 │
│ ## 摘要 ## 摘要 │
│ ## 读后感 ## 读后感 │
│ (用户填写) │
│ │
└─────────────────────────────────────────────────────────────┘5.2 创建模板
📝 步骤一:创建模板笔记
- 在
🔧 Templates目录下创建新笔记 - 命名为"读书笔记模板"(或其他名称)
- 添加标签
#template(这会让 Trilium 知道这是一个模板)
📝 步骤二:设计模板内容
## 📖 基本信息
| 项目 | 内容 |
|------|------|
| 📝 书名 | |
| ✍️ 作者 | |
| 📅 出版年 | |
| 🏷️ 类型 | |
| ⭐ 评分 | /5 |
| 📊 状态 | 🔄 阅读中 / ✅ 已读完 |
---
## 📝 内容摘要
---
## 💡 关键洞见
1.
2.
3.
---
## 🤔 读后感
---
## 📌 行动项
- [ ]
- [ ]
---
## 🔗 相关链接
📝 步骤三:添加模板属性
为模板添加你希望所有实例都继承的属性:
#template → 标记为模板
#book → 类型:书籍
#iconClass=bx bx-book → 图标
#status=reading → 默认状态5.3 使用模板
🖱️ 方法一:创建时选择模板
- 右键点击父笔记 → Create child note
- 在弹出的对话框中,选择模板
- 新笔记会自动应用模板
🖱️ 方法二:为现有笔记添加模板
- 选中笔记
- 添加关系:
~template=@读书笔记模板 - 如果笔记内容为空,会自动填充模板内容
🖱️ 方法三:通过父笔记自动应用
在父笔记上设置可继承的模板关系:
📁 读书笔记
~!child:template=@读书笔记模板 (可继承)
# 现在,在"读书笔记"下创建的任何子笔记
# 都会自动应用"读书笔记模板"5.4 实用模板示例
📅 日记模板
## 📅 {{date}}
### 🌅 晨间计划
今日最重要的三件事:
1.
2.
3.
### ✅ 完成事项
- [ ]
- [ ]
- [ ]
### 💭 今日思考
### 📝 备注
### 🌙 晚间回顾
- 今天做得好的:
- 明天可以改进的:
- 感恩的事:🎯 项目模板
## 🎯 项目概述
**项目名称**:
**开始日期**:
**目标截止**:
**项目状态**:🔄 进行中
---
## 📋 项目目标
1.
2.
3.
---
## 📊 里程碑
| 里程碑 | 截止日期 | 状态 |
|--------|---------|------|
| | | ⏳ |
| | | ⏳ |
---
## 📝 任务清单
### 待办
- [ ]
### 进行中
- [ ]
### 已完成
- [x]
---
## 📎 相关资料
-
---
## 📝 会议记录
### {{date}} - 会议主题
**参与人**:
**讨论内容**:
**决议**:
**下一步**:👤 人物档案模板
## 👤 基本信息
| 项目 | 内容 |
|------|------|
| 🏢 公司/组织 | |
| 💼 职位 | |
| 📍 城市 | |
| 📧 邮箱 | |
| 📱 电话 | |
| 🔗 社交媒体 | |
---
## 🤝 关系背景
**如何认识**:
**初次见面**:
**介绍人**:
---
## 📝 交流记录
### {{date}}
- 交流内容:
- 后续事项:
---
## 💡 备注
5.5 高级模板技巧
🔄 模板的子笔记
模板不仅可以有内容,还可以有子笔记。当应用模板时,子笔记也会被复制:
📋 项目模板
├── 📝 项目概述
├── 📁 文档
│ ├── 📝 需求文档
│ └── 📝 技术方案
├── 📁 会议记录
└── 📁 参考资料
↓ 应用模板后 ↓
📝 新项目
├── 📝 项目概述(复制自模板)
├── 📁 文档
│ ├── 📝 需求文档
│ └── 📝 技术方案
├── 📁 会议记录
└── 📁 参考资料📊 提升属性(Promoted Attributes)
你可以让某些属性在笔记顶部以表单形式显示,方便快速编辑:
#template
#label:author=promoted,single,text → 作者(文本输入框)
#label:year=promoted,single,number → 年份(数字输入框)
#label:rating=promoted,single,number → 评分(数字输入框)
#label:status=promoted,single,text → 状态(文本输入框)这样,每个使用此模板的笔记顶部都会显示一个表单,包含作者、年份、评分、状态等字段。
六、关系图(Relation Map)
6.1 什么是关系图?
关系图(Relation Map) 是 Trilium 中一种特殊的笔记类型,它可以可视化地展示笔记之间的关系。
这对于以下场景特别有用:
- 🧠 知识图谱:展示概念之间的关联
- 👥 人物关系:展示人物之间的社交网络
- 📊 项目架构:展示模块之间的依赖关系
- 📖 故事创作:展示角色关系和剧情线
6.2 创建关系图
- 创建新笔记
- 修改笔记类型:在右侧边栏选择 Type → Relation Map
- 添加笔记到关系图:
- 在关系图画布上双击,创建新笔记
- 或拖拽现有笔记到画布
- 创建关系:
- 从一个节点拖拽到另一个节点
- 输入关系名称(如
knows、worksAt)
6.3 关系图示例
👥 人物关系图
┌─────────┐
│ 张三 │
└────┬────┘
│ knows
┌────────┼────────┐
│ │ │
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐
│ 李四 │ │ 王五 │ │ 赵六 │
└──┬───┘ └──────┘ └──┬───┘
│ │
│ worksAt │ worksAt
│ │
▼ ▼
┌──────┐ ┌──────┐
│ABC公司│ │XYZ公司│
└──────┘ └──────┘📚 知识概念图
┌───────────────┐
│ 计算机网络 │
└───────┬───────┘
│ contains
┌──────────┼──────────┐
│ │ │
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐
│应用层 │ │传输层 │ │网络层 │
└──┬───┘ └──┬───┘ └──────┘
│ │
│ │ includes
│ │
▼ ▼
┌──────┐ ┌──────┐
│ HTTP │ │ TCP │
└──────┘ └──────┘6.4 关系图的操作技巧
| 操作 | 方法 |
|---|---|
| 添加节点 | 双击画布空白处 |
| 创建关系 | 从一个节点拖拽到另一个节点 |
| 编辑关系 | 点击关系线上的文字 |
| 删除关系 | 选中关系线,按 Delete |
| 移动节点 | 拖拽节点 |
| 跳转到笔记 | 双击节点 |
| 缩放 | 滚轮或 Ctrl+滚轮 |
| 平移 | 拖拽画布空白处 |
七、搜索与属性
7.1 按属性搜索
属性的一大价值是支持精确搜索。在 Trilium 的搜索框中,你可以使用属性进行筛选:
| 搜索语法 | 含义 |
|---|---|
#book | 搜索所有带 #book 标签的笔记 |
#year=2024 | 搜索 #year 为 2024 的笔记 |
#rating>=4 | 搜索评分 ≥ 4 的笔记 |
#status=reading | 搜索状态为"阅读中"的笔记 |
~author.title=王小波 | 搜索 ~author 关系指向的笔记标题为"王小波"的笔记 |
7.2 组合搜索
可以组合多个条件:
#book #year>=2020 #rating>=4
→ 搜索2020年及以后出版、评分≥4的书籍笔记
#project #status=active #priority=high
→ 搜索进行中的高优先级项目
#person #company=ABC公司
→ 搜索ABC公司的所有人员7.3 保存搜索
你可以将常用的搜索保存为搜索笔记(Search Note):
- 创建新笔记,类型选择 Search
- 在笔记内容中输入搜索条件,如
#book #status=reading - 这个笔记会动态显示所有符合条件的笔记列表
示例保存搜索:
📁 智能视图
├── 🔍 正在阅读的书(#book #status=reading)
├── 🔍 高优先级任务(#todo #priority=high)
├── 🔍 本月创建的笔记(note.dateCreated >= 2025-01-01)
└── 🔍 最近修改的笔记(orderBy:dateModified desc limit:20)八、本节小结
📝 核心要点回顾
- 属性系统是 Trilium 的核心功能之一:
- 标签(Labels):
#key=value格式,用于元数据 - 关系(Relations):
~key=@笔记格式,用于建立笔记间联系
- 标签(Labels):
- 属性继承让管理更高效:
- 父笔记的可继承属性会自动应用到所有子笔记
- 用
#!或~!前缀标记可继承属性
- 模板系统实现自动化:
- 模板可以包含内容、属性和子笔记
- 应用模板时会继承属性、复制内容和子笔记
- 通过
~!child:template可以让子笔记自动应用模板
- 关系图可视化知识网络:
- 适合展示人物关系、概念图、项目架构等
- 支持交互式编辑和导航
- 按属性搜索让信息检索更精确:
- 支持标签搜索、关系搜索、组合搜索
- 可以保存为搜索笔记,动态更新
🎯 实践检查清单
完成本节学习后,请确认你已经:
📚 参考资源
官方文档
- Attributes - TriliumNext Docs
- Labels - TriliumNext Docs
- Relations - TriliumNext Docs
- Attribute Inheritance - TriliumNext Docs
- Templates - TriliumNext Docs
- Relation Map - TriliumNext Docs
回复