简介
Trilium Notes 是一款层次化笔记应用,专注于构建个人知识库。它支持富文本编辑、代码编辑,并提供强大的信息组织和关联功能。
| 特性 | 描述 |
|---|
| 层次化笔记 | 树状结构的笔记组织 |
| 富文本 | 所见即所得编辑器,带格式选项 |
| 代码笔记 | 语法高亮的代码编辑 |
| 关系 | 通过关系将笔记相互链接 |
| 加密 | 端到端笔记加密 |
架构
核心概念
| 概念 | 描述 |
|---|
| Note | 知识库中的单个内容 |
| Branch | 笔记之间的父子关系 |
| Attribute | 附加到笔记的元数据(标签、关系) |
| Relation | 两个笔记之间的有向链接 |
| Label | 笔记上的键值元数据 |
笔记类型
| 类型 | 描述 | 使用场景 |
|---|
| Text | 带格式的富文本 | 通用笔记和文档 |
| Code | 语法高亮的代码 | 代码片段和脚本 |
| Render | 动态渲染内容 | 计算和模板 |
| File | 附加文件 | 文档和图片 |
| Image | 图片笔记 | 截图和图表 |
| Book | 子笔记的容器 | 组织收藏 |
| Search | 保存的搜索查询 | 动态笔记集合 |
安装
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
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
桌面应用
| 平台 | 下载 |
|---|
| Windows | TriliumNotes-windows-x64.zip |
| macOS | TriliumNotes-macos-x64.dmg |
| Linux | TriliumNotes-linux-x64.tar.xz |
笔记组织
树状结构
Root
├── 每日笔记
│ ├── 2024-01
│ │ ├── 2024-01-15
│ │ └── 2024-01-16
│ └── 2024-02
├── 项目
│ ├── 项目 Alpha
│ └── 项目 Beta
├── 参考资料
│ ├── 编程
│ └── 设计
└── 日志
移动和克隆
| 操作 | 描述 |
|---|
| 移动 | 更改笔记的父级 |
| 克隆 | 在另一个位置创建笔记的引用 |
| 复制 | 创建笔记的独立副本 |
| 删除 | 将笔记移到回收站(可恢复) |
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、NOT | python AND tutorial |
保存的搜索
基于搜索查询创建动态笔记集合。
| 示例 | 描述 |
|---|
#book | 所有标记为书籍的笔记 |
#dateModified >= NOW-7 | 最近修改的笔记 |
note.title LIKE '%project%' | 标题中包含 "project" 的笔记 |
关系和图谱
创建关系
| 步骤 | 操作 |
|---|
| 1 | 打开笔记属性面板 |
| 2 | 添加关系属性 |
| 3 | 设置关系名称(如 "related-to") |
| 4 | 选择目标笔记 |
| 5 | 关系双向创建 |
关系图
关系图将笔记之间的连接可视化为图谱。
| 功能 | 描述 |
|---|
| 节点 | 笔记显示为圆圈 |
| 边 | 关系显示为线条 |
| 缩放 | 平移和缩放图谱 |
| 布局 | 自动或手动定位 |
| 过滤 | 按关系类型过滤 |
加密
笔记加密
| 设置 | 描述 |
|---|
| 受保护笔记 | 笔记使用密码加密 |
| 密码保护 | 查看需要密码 |
| 本地加密 | 在本地存储上加密 |
| 同步加密 | 同步期间加密 |
加密选项
| 选项 | 描述 |
|---|
| 单笔记 | 加密单个笔记 |
| 分支 | 加密整个笔记分支 |
| 全局 | 加密整个数据库 |
同步
同步方式
| 方式 | 描述 |
|---|
| 服务器同步 | 通过 Trilium 服务器同步 |
| 文件同步 | 通过共享文件系统同步 |
| 手动导出/导入 | 手动数据传输 |
同步配置
| 设置 | 描述 |
|---|
| 服务器实例 | 同步服务器的 URL |
| 同步间隔 | 同步更改的频率 |
| 冲突解决 | 如何处理同步冲突 |
脚本和自动化
脚本能力
| 类型 | 描述 |
|---|
| 后端脚本 | 在服务器上运行,完全 API 访问 |
| 前端脚本 | 在浏览器中运行,UI 访问 |
| 定时脚本 | 在指定间隔执行 |
| 事件脚本 | 在笔记事件时触发 |
// 获取当前笔记
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 用于脚本和自动化 |