跳转到内容

节点

在 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
);
字段类型描述
idTEXT节点唯一标识符
nameTEXT节点名称
typeTEXT节点类型(doc/table/dataview/folder)
parent_idTEXT父节点 ID
iconTEXT节点图标
coverTEXT节点封面
is_pinnedBOOLEAN是否置顶
is_full_widthBOOLEAN是否全宽显示
is_lockedBOOLEAN是否锁定
is_deletedBOOLEAN是否已删除
hide_propertiesBOOLEAN是否隐藏属性
positionREAL节点位置
created_atTIMESTAMP创建时间
updated_atTIMESTAMP更新时间

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
);
字段类型描述
idTEXT节点唯一标识符
typeTEXT扩展节点类型,如 excalidraw
blobBLOB二进制数据(图片、音频、视频等)
textTEXT文本数据(JSON、Markdown 等)
created_atTIMESTAMP创建时间
updated_atTIMESTAMP更新时间

扩展节点根据数据类型选择存储字段:

  • blob 用于存储二进制数据
  • text 用于存储文本数据

例如,excalidraw 扩展使用 text 字段存储 JSON 格式的绘图数据。