Trilium 知识库教程

June 24, 2026 · View on GitHub

简介

Trilium Notes 是一款层次化笔记应用,专注于构建个人知识库。它支持富文本编辑、代码编辑,并提供强大的信息组织和关联功能。

特性描述
层次化笔记树状结构的笔记组织
富文本所见即所得编辑器,带格式选项
代码笔记语法高亮的代码编辑
关系通过关系将笔记相互链接
加密端到端笔记加密

架构

核心概念

概念描述
Note知识库中的单个内容
Branch笔记之间的父子关系
Attribute附加到笔记的元数据(标签、关系)
Relation两个笔记之间的有向链接
Label笔记上的键值元数据

笔记类型

类型描述使用场景
Text带格式的富文本通用笔记和文档
Code语法高亮的代码代码片段和脚本
Render动态渲染内容计算和模板
File附加文件文档和图片
Image图片笔记截图和图表
Book子笔记的容器组织收藏
Search保存的搜索查询动态笔记集合

安装

Docker 部署

docker run -d \
  --name=trilium \
  -p 8080:8080 \
  -v ./data:/home/node/trilium-data \
  -e TRILIUM_DATA_DIR=/home/node/trilium-data \
  --restart unless-stopped \
  zadam/trilium:latest

Docker Compose

version: "3.8"
services:
  trilium:
    image: zadam/trilium:latest
    container_name: trilium
    ports:
      - "8080:8080"
    volumes:
      - ./data:/home/node/trilium-data
    environment:
      - TRILIUM_DATA_DIR=/home/node/trilium-data
    restart: unless-stopped

桌面应用

平台下载
WindowsTriliumNotes-windows-x64.zip
macOSTriliumNotes-macos-x64.dmg
LinuxTriliumNotes-linux-x64.tar.xz

笔记组织

树状结构

Root
├── 每日笔记
│   ├── 2024-01
│   │   ├── 2024-01-15
│   │   └── 2024-01-16
│   └── 2024-02
├── 项目
│   ├── 项目 Alpha
│   └── 项目 Beta
├── 参考资料
│   ├── 编程
│   └── 设计
└── 日志

移动和克隆

操作描述
移动更改笔记的父级
克隆在另一个位置创建笔记的引用
复制创建笔记的独立副本
删除将笔记移到回收站(可恢复)

Book 笔记

Book 笔记用作组织相关笔记的容器。

功能描述
排序子项自动排序子笔记
默认展开打开笔记时显示子项
提升显示将视图聚焦于此笔记和子项

富文本编辑器

格式选项

格式描述
加粗使文本加粗
斜体使文本倾斜
下划线为文本添加下划线
删除线为文本添加删除线
标题H1 到 H4 标题
列表项目符号和编号列表
链接内部和外部链接
表格插入和编辑表格
代码块内联和块级代码
图片插入图片
颜色文本和背景颜色

键盘快捷键

快捷键操作
Ctrl+B加粗
Ctrl+I斜体
Ctrl+U下划线
Ctrl+K插入链接
Ctrl+Shift+C代码块
Ctrl+S保存笔记

代码笔记

支持的语言

语言语法高亮
JavaScript完全支持,可执行 Node.js
Python语法高亮
SQL语法高亮,支持查询执行
HTML语法高亮,支持预览
CSS语法高亮
JSON语法高亮,支持验证
Markdown语法高亮,支持预览
TypeScript语法高亮

代码执行

// JavaScript 笔记可执行
return "Hello from Trilium!";

// 访问 API
const note = api.origin.getActiveNote();
return note.title;

属性

标签属性

标签描述
#readOnly使笔记只读
#autoReadOnlyDisabled禁用自动只读
#sorted按字母顺序排序子项
#sortDirection排序方向(asc/desc)
#calendarRoot标记为日历根
#hidePromoted隐藏提升的属性
#cssClass为笔记添加 CSS 类

关系属性

关系描述
~ 前缀定义到另一个笔记的关系
run笔记加载时执行的脚本
renderNote在当前笔记内渲染的笔记
template创建新笔记的模板

属性继承

行为描述
继承子笔记继承父级属性
覆盖子级可覆盖继承的属性
提升在 UI 中突出显示的属性

搜索

搜索语法

语法描述示例
简单文本全文搜索machine learning
精确短语引号搜索"neural network"
属性搜索按属性搜索#book
通配符模式匹配prog*
逻辑运算符AND、OR、NOTpython AND tutorial

保存的搜索

基于搜索查询创建动态笔记集合。

示例描述
#book所有标记为书籍的笔记
#dateModified >= NOW-7最近修改的笔记
note.title LIKE '%project%'标题中包含 "project" 的笔记

关系和图谱

创建关系

步骤操作
1打开笔记属性面板
2添加关系属性
3设置关系名称(如 "related-to")
4选择目标笔记
5关系双向创建

关系图

关系图将笔记之间的连接可视化为图谱。

功能描述
节点笔记显示为圆圈
关系显示为线条
缩放平移和缩放图谱
布局自动或手动定位
过滤按关系类型过滤

加密

笔记加密

设置描述
受保护笔记笔记使用密码加密
密码保护查看需要密码
本地加密在本地存储上加密
同步加密同步期间加密

加密选项

选项描述
单笔记加密单个笔记
分支加密整个笔记分支
全局加密整个数据库

同步

同步方式

方式描述
服务器同步通过 Trilium 服务器同步
文件同步通过共享文件系统同步
手动导出/导入手动数据传输

同步配置

设置描述
服务器实例同步服务器的 URL
同步间隔同步更改的频率
冲突解决如何处理同步冲突

脚本和自动化

脚本能力

类型描述
后端脚本在服务器上运行,完全 API 访问
前端脚本在浏览器中运行,UI 访问
定时脚本在指定间隔执行
事件脚本在笔记事件时触发

API 访问

// 获取当前笔记
const note = api.origin.getActiveNote();

// 搜索笔记
const results = await api.searchForNotes("my search");

// 创建新笔记
await api.createNote({
  parentNoteId: 'root',
  title: 'New Note',
  content: 'Note content',
  type: 'text'
});

导入和导出

导入格式

格式描述
Markdown导入 .md 文件
HTML导入 HTML 文件
OPML导入大纲文件
Text导入纯文本文件
Enex从 Evernote 导入

导出格式

格式描述
HTML导出为 HTML 文件
Markdown导出为 Markdown
OPML导出为大纲
JSON导出笔记结构

总结

主题核心要点
组织层次化树状结构,支持克隆
笔记富文本、代码和文件笔记类型
属性标签和关系用于元数据和链接
搜索强大的全文和基于属性的搜索
加密单笔记和分支级加密
自动化JavaScript API 用于脚本和自动化