跳到正文
QuireKit
插件文档
Alpha · API 持续演进

配置插件

先判断装配位置,再区分创建配置、文档属性、命令和运行状态。

假设产品只允许一、二级标题。需要修改的是 Heading 的 levels 配置:它决定这个编辑器接受哪些标题级别。把当前段落改成二级标题,则是运行时的 toggleHeading 命令。这两个操作发生在不同阶段。

先找对装配位置

先查看参考页顶部的 Classic、Block 状态及所需预设,详细规则见选择编辑器与接入方式。适用范围与许可标签分别判断。

你接入的是什么放在哪里例子
文档节点、文字格式、编辑行为、View 注册Core 的 extensionsHeading、Link、Search、canvasViewExtension
一组 Core 扩展Core 的 extensionsStarterKit、TextStyleKit
产品的菜单、侧栏、文件服务Classic 的 pluginscreateClassicWordDocxPlugin、createClassicEditorPdfPlugin
完整产品装配策略Classic 的 presetcreateClassicWordPreset、createClassicWordProPreset
Block 默认内容与图形工作区选项createBlockEditor 的 preset 配置对象starterKit、flowchart、mindMap
Block 附加能力数组展开到 createBlockEditor 的 extensionscreateBlockTableExtensions、createBlockNumberingExtensions

名称中带 Classic 的扩展也可能仍是 Core Extension,例如 ClassicWordTable。以每页的接入说明为准,不能只按名字猜。

配置一个预设里的插件

StarterKit 已包含 Heading,直接改它的子项,不要再追加一个 Heading。

ts

将这个数组交给 Editor 的 extensions。创建后的标题解析、命令和快捷键都只接受这两个级别,宿主工具栏也应只提供相应入口。

如果需要自己提供同名实现,先把预设的对应项设为 false,再装替代扩展。只有字段类型允许 false 时才能这样关闭,不要给任意配置都传 false。

ts

这两种方式选一种即可。上面只展示要修改的装配片段,完整容器与挂载见快速开始。

配置和正文内容分开

内容生命周期示例
插件 options创建或装配扩展时决定Heading 的 levels
节点、标记属性保存到规范文档,通过命令修改当前标题的 level、链接的 href
storage当前编辑器的运行状态或读取接口characterCount.characters()
宿主服务由应用创建和释放校对 provider、图形工作区、网络连接

.configure() 返回扩展的配置副本,不会把一个已经挂载的实例就地改造。已有文档中的二级标题也不会因为你改了配置对象自动变成一级;需要修改正文时调用命令。

ts

命令返回 false 时不应继续显示成功。例如当前 Heading 只允许一、二级,传 level: 3 会被拒绝。接界面时使用 editor.can()、editor.isActive() 与事务订阅,见把命令接到产品界面。

试一下配置后的行为

下面允许一、二级标题。先点二级标题,再尝试三级:二级操作会更新正文,三级操作返回失败并保留原文。源码只包含当前例程需要的创建、按钮和销毁逻辑。

正在准备示例…

读懂每页的默认值

配置页列出当前入口自己的默认值。预设可能再次覆盖它:例如直接创建 Proofing 时 provider 为 null,完整 Word kit 可选择默认校对服务。应同时阅读你实际使用的装配层。

undefined 表示没有显式传值,子扩展或宿主装配仍可能选择回退。StarterKit 的子项未设置时默认启用,配置对象覆盖该子项的选项;false 才关闭它。

null 往往表示没有接入某个服务,例如图形 open 或校对 provider。它不代表扩展会自动请求网络服务。哪些能力需要宿主端口,每页的用途和配置说明都会分别指出。

安装后还需要什么

只有文档模型不会自动产生全部产品界面,也不能保证每种 View 和导出格式都能呈现它。按所需效果检查三个地方:当前 View 是否支持该能力;图形、校对或协作需要的宿主服务是否已接入;保存与导出是否保留相应内容。

从全部插件进入具体能力的参考页。想做完整产品时继续构建产品;产品文件服务的例程见开发产品插件。

QuireKitQuireKit · Core、插件与 Classic 文档