注册与选择
Canvas/SVG 宿主同时导入 @quirekit/view/styles.css。它提供内容、覆盖层与输入层的基础定位,主题和工作区尺寸由宿主提供;独立 Core 接入不依赖 Classic 的产品样式。完整示例与挂载说明包含这一导入。
| 后端 | 注册 | 说明 |
|---|---|---|
canvas | canvasViewExtension({ runtime }) | Canvas 内容与 View 输入/几何 |
svg | svgViewExtension({ runtime }) | 共享分页语义的 SVG 表面 |
html | htmlViewExtension({ runtime })(@quirekit/view-html) | retained DOM 连续流,不等于原生 DOM view |
dom | DomViewExtension(@quirekit/dom-view) | 原生 contenteditable,单独的适配器 |
@quirekit/viewAGPL-3.0-only创建已配置的 Canvas 挂载视图扩展。 @param options - Canvas 运行时选项。 @returns 可安装到 Core 的 Canvas 视图扩展。
function canvasViewExtension(options?: Partial<CanvasViewExtensionOptions>): QuireExtension<CanvasViewExtensionOptions>@quirekit/viewAGPL-3.0-only创建已配置的 SVG 挂载视图扩展。 @param options - SVG 运行时选项。 @returns 可安装到 Core 的 SVG 视图扩展。
function svgViewExtension(options?: Partial<SvgViewExtensionOptions>): QuireExtension<SvgViewExtensionOptions>@quirekit/view-htmlAGPL-3.0-only创建已配置的 retained HTML 挂载视图扩展。 @param options - HTML 运行时选项。 @returns 可安装到 Core 的 HTML 视图扩展。
function htmlViewExtension(options?: Partial<HtmlViewExtensionOptions>): QuireExtension<HtmlViewExtensionOptions>常用 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。