跳到正文
QuireKit
Core 开发文档
Alpha · API 持续演进
API 与参考查看 Markdown ↗

View:适配器与工作区参数

后端选择、runtime 参数、几何查询和失效处理。

注册与选择

Canvas/SVG 宿主同时导入 @quirekit/view/styles.css。它提供内容、覆盖层与输入层的基础定位,主题和工作区尺寸由宿主提供;独立 Core 接入不依赖 Classic 的产品样式。完整示例与挂载说明包含这一导入。

后端注册说明
canvascanvasViewExtension({ runtime })Canvas 内容与 View 输入/几何
svgsvgViewExtension({ runtime })共享分页语义的 SVG 表面
htmlhtmlViewExtension({ runtime })(@quirekit/view-html)retained DOM 连续流,不等于原生 DOM view
domDomViewExtension(@quirekit/dom-view)原生 contenteditable,单独的适配器
@quirekit/viewAGPL-3.0-only

创建已配置的 Canvas 挂载视图扩展。 @param options - Canvas 运行时选项。 @returns 可安装到 Core 的 Canvas 视图扩展。

canvasViewExtensionts
@quirekit/viewAGPL-3.0-only

创建已配置的 SVG 挂载视图扩展。 @param options - SVG 运行时选项。 @returns 可安装到 Core 的 SVG 视图扩展。

svgViewExtensionts
@quirekit/view-htmlAGPL-3.0-only

创建已配置的 retained HTML 挂载视图扩展。 @param options - HTML 运行时选项。 @returns 可安装到 Core 的 HTML 视图扩展。

htmlViewExtensionts

常用 Canvas runtime 参数

参数用途与单位接入注意
width / height首选内容 surface 尺寸,CSS px不是 Word twip,也不替代文档模型页设置
pageStack分页面 surface 展示分页事实由 profile/Engine 产生
scrollSource / scrollViewport指定滚动所有权产品内滚动用同一个 viewport 元素
viewportPadding视口留白,CSS px与文档页边距分别配置
devicePixelRatio / getDevicePixelRatio绘制 backing 密度不当作正文缩放比例
surfaceConfig选区、对象选择和呈现样式不写入规范正文
mediaResolver稳定资产引用到可用字节/资源与持久化及文件转换使用相容的资源服务
onRender完成一次挂载渲染的事实读取 renderResult.layoutSnapshot,不再启动第二次排版
onVisiblePagesChange实际挂载页集合可用于诊断,不等同文档总页数
textMeasurer / lineBreaker测量和断行策略需要一致、可验证的字体与布局策略

SVG 有自身 runtime 合同,如 textMeasurementBackend: 'browser'。不要只按相似字段名给不同后端套一份未经类型检查的对象;教程的公共回调使用共享 QuireMountedViewRenderEvent。

mounted View 的常用能力

editor.mountedView 在未挂载时可能不存在;editor.view 需要有效主视图。focus()、hasFocus()、scrollToSelection() 负责输入和可见性。coordsAtPos() / posAtCoords() 使用浏览器 client CSS px;getCaretRect() 和 getTextRangeRects(range, sourceDocument) 只在后端有当前几何时返回结果。

当 API 要求 sourceDocument,传当前捕获的不可变文档身份。陈旧帧返回 null/不可用是正常的拒绝信号,不能用旧坐标命中新的正文。监听 onGeometryUpdate() 后在需要时重读,并释放返回的订阅。

完整工作区、模式切换和缩放见挂载教程;Editor 的 mount/changeMode 参数见 Editor API。

QuireKitQuireKit · Core、插件与 Classic 文档