节点
在 Eidos 中,节点是基本的数据单元——相当于传统文件系统中的文件。由于 Eidos 将全部动态数据存储在单个 SQLite 文件中,所以我们称之为”节点”而非文件。每个节点都有特定的类型,决定了它的功能和用途。
Eidos 提供四种内置节点类型:
- doc - 文档节点,用于编写和存储文本内容
- table - 表格节点,用于管理结构化数据
- folder - 文件夹节点,用于组织其他节点
- dataview - 数据视图节点,用于查询和展示数据
所有节点都按照树形结构组织,类似于文件系统,但每个节点都知道自己的类型和相应的处理方式。
节点信息存储在 eidos__tree 表中:
CREATE TABLE IF NOT EXISTS eidos__tree ( id TEXT PRIMARY KEY, name TEXT, type TEXT, parent_id TEXT NULL, is_pinned BOOLEAN DEFAULT 0, is_full_width BOOLEAN DEFAULT 0, is_locked BOOLEAN DEFAULT 0, icon TEXT NULL, cover TEXT NULL, is_deleted BOOLEAN DEFAULT 0, hide_properties BOOLEAN DEFAULT 0, position REAL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);| 字段 | 类型 | 描述 |
|---|---|---|
| id | TEXT | 节点唯一标识符 |
| name | TEXT | 节点名称 |
| type | TEXT | 节点类型(doc/table/dataview/folder) |
| parent_id | TEXT | 父节点 ID |
| icon | TEXT | 节点图标 |
| cover | TEXT | 节点封面 |
| is_pinned | BOOLEAN | 是否置顶 |
| is_full_width | BOOLEAN | 是否全宽显示 |
| is_locked | BOOLEAN | 是否锁定 |
| is_deleted | BOOLEAN | 是否已删除 |
| hide_properties | BOOLEAN | 是否隐藏属性 |
| position | REAL | 节点位置 |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
Eidos 支持通过扩展添加新的节点类型。扩展节点数据存储在 eidos__extnodes 表中:
CREATE TABLE IF NOT EXISTS eidos__extnodes ( id TEXT PRIMARY KEY, blob BLOB, text TEXT, type TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);扩展节点字段
Section titled “扩展节点字段”| 字段 | 类型 | 描述 |
|---|---|---|
| id | TEXT | 节点唯一标识符 |
| type | TEXT | 扩展节点类型,如 excalidraw |
| blob | BLOB | 二进制数据(图片、音频、视频等) |
| text | TEXT | 文本数据(JSON、Markdown 等) |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
扩展节点根据数据类型选择存储字段:
blob用于存储二进制数据text用于存储文本数据
例如,excalidraw 扩展使用 text 字段存储 JSON 格式的绘图数据。