Skip to content

Core ​

平台中立内核,负责文档模型、事务、会话、空间查询与插件协议。不会依赖DOM或某个具体绘图库。

应用接入优先使用Editor。需要自行装配、开发通用插件或实现新渲染适配器时,再使用本页协议。

协议导航 ​

专题使用场景
插件上下文生命周期、注册、文档命令、只读查询和宿主能力
节点定义创建内容、文本槽位、声明式图元与节点专有字段
输入作用域键盘优先级、组合输入、指针会话与取消
渲染适配字体测量、挂载、尺寸同步和资源释放

文档与会话 ​

类型包含内容持久化与更新
CanvasDocumentid/name/meta/content/assets?/resources?经文档语义命令或事务修改
CanvasContent以ID为键的nodes与connectors字典补丁按实体ID定位,不使用数组下标
NodeEntity几何、层级、样式、文本块和具名扩展字段子节点坐标相对父容器
ConnectorEntity端点、路由类型、样式与标签绑定节点或自由端点
ViewportStatex/y/zoom会话状态,不进入文档历史
CanvasDocumentView深只读的当前文档投影只读,不通过赋值更新

zIndex是同一容器中按字典序比较的分数索引。不要把它当连续数组索引或用全量重排来移动一个实体。

媒体元数据保存在文档资产表,实际二进制属于宿主AssetAdapter。节点特有状态通过类型扩展表达,通用data只用于开放业务载荷。

引擎装配与事务 ​

SkyNoteEngine(options?)管理文档、会话、实体索引和插件。常用选项包括initialDoc、initialViewport、zoomRange、theme、fonts与assets。engine.use(plugin)安装插件,最终调用engine.destroy()释放资源。

Core本身不提供浏览器界面,也不自动安装所有节点。直接使用Core时,需要显式安装基础节点/交互并提供宿主渲染与输入桥接;仅新建引擎不会得到完整编辑器UI。

写入使用documentStore或插件上下文document的语义方法。batch将同步的一组修改组合提交;撤销重做由操作记录和补丁驱动。读取实体后直接赋值会绕过历史、派生失效和校验,不是合法更新方式。

增量通知 ​

DocumentChangeSet包含nodes/connectors/assets/contentReplaced/orderChanged。节点还区分局部geometry与worldGeometry:祖先移动会改变后代世界几何,即使后代局部坐标没变。

nodes.dataPaths可选,字段路径为相对节点的路径;null表示整体替换,缺省或空路径不能被当作“无需更新”,消费者应完整刷新对应节点。没有必要时,不在高频路径重建整份文档快照。

公开入口 ​

入口用途
SkyNoteEngine底层引擎与插件装配
SkyNotePlugin / CanvasPluginContext插件生命周期及公开能力
NodeTypeDefinition节点类型与声明式内容
CanvasDocument文档持久化模型
CanvasHost / AssetAdapter宿主交互与资产边界
InputScope按优先级协调键盘输入

子路径包括 /protocols、/utils、/operation、/state、/registry、/spatial、/input、/plugin。实体写入必须走公开事务或语义命令。

可组合的画布能力,从一个想法开始。