Leafer 渲染器
LeaferAdapter 提供浏览器渲染器与字体测量能力,通过 renderer 参数传给Editor。
ts
import { SkyNoteEditor } from '@skynote/editor';
import { LeaferAdapter } from '@skynote/renderer-leafer';
export function createEditor(): SkyNoteEditor<HTMLElement> {
return new SkyNoteEditor<HTMLElement>({ renderer: new LeaferAdapter() });
}容器尺寸、焦点与输入由适配器桥接。渲染器可提供图片导出能力,实际支持范围通过能力接口查询。
构造选项
new LeaferAdapter(options?)接收LeaferRendererOptions,每次挂载都使用同一组选项。
| 选项 | 默认 / 作用 |
|---|---|
pixelRatio | 缺省跟随设备像素比及变化;显式提供时固定 |
enableFrameScheduler | 默认开启分帧调度 |
offscreenCacheLimit | 默认2000,节点与连线各自计数;超限后淘汰离屏图元缓存 |
imageFailure | 可选失败图资源提供者;解析带AbortSignal,临时资源可通过release回收 |
这些是渲染策略,不写入文档。缓存上限不是文档节点数限制;调大缓存也不等于所有场景性能都会提升。
RenderAdapter 契约
适配器成对提供fonts和mount(engine, container)。字体测量与绘制保持一致,避免排版大小和可见文字分叉;mount返回当前渲染器,由Editor在unmount/destroy时销毁。
宿主容器尺寸变化后,Leafer适配器调整绘制尺寸并同步会话viewportSize。是否重新适配内容由宿主决定;全屏后希望自动居中的宿主,等尺寸更新后调用fitContent()。
原生扩展与资源
基础节点优先使用Core声明式图元。只有需要Leafer特有绘制或生命周期时,才在适配器层注册原生节点渲染器;更新时复用已有图元,销毁时解除监听和临时资源。
imageFailure用于展示缺失、加载或解码失败,不把替代图登记为用户文档资产。跨域图片服务、字体可用性和图片导出权限仍由宿主环境保证。
在SSR环境中应客户端动态导入,容器退出时成对销毁。自定义渲染器遵循Core公开渲染协议,不向内核加入平台API。