BlockRichContent · 富内容服务
分栏、模板、网页卡片与资源节点共用的宿主服务与插入合同:单文件大小上限、文件存储与网页元数据解析。未提供存储时文件以 data URL 保存在正文中。
分栏、模板、网页卡片与资源节点共用的宿主服务与插入合同:单文件大小上限、文件存储与网页元数据解析。未提供存储时文件以 data URL 保存在正文中。
@quirekit/block-editor · AGPL-3.0-only
编辑器适用范围
层次:Block 产品适配
| 编辑器 | 状态 | 所需装配与边界 |
|---|---|---|
| Classic | 未支持 | 该入口面向 Block 连续流,不接入 Classic 分页产品。需要共享语义时选择相应 Word 或通用能力及 Classic 装配。 |
| Block | 直接支持 | createBlockEditorPreset — createBlockEditor 默认预设已装配此能力。通过 preset 中对应子项配置;图形编辑使用预设注入的工作区,宿主仍负责保存和资源。不要重复安装同名扩展。 |
“直接支持”指已有上述产品装配;具体交互、宿主服务和格式支持仍有各自条件。状态与接入规则。许可独立显示。
接入
pnpm add @quirekit/block-editor@alpha
在创建 Editor 时放入 extensions。挂载容器、视图和保存由宿主提供,见快速开始。
import { BlockRichContent } from '@quirekit/block-editor'
安装时按包声明选择兼容版本,外部可用版本以分发源为准。本站使用工作区 Alpha;许可标签来自入口所属包,使用条件见支持与许可。
按编辑器接入
以下片段沿用已挂载的宿主元素 element,宿主负责容器尺寸与保存;退出页面时调用 instance.destroy()。已有预设装配的能力不要再重复追加;需要宿主端口的入口应先完成下方配置。
Classic · 未支持
该入口面向 Block 连续流,不接入 Classic 分页产品。需要共享语义时选择相应 Word 或通用能力及 Classic 装配。
Block · 直接支持
createBlockEditor 默认预设已装配此能力。通过 preset 中对应子项配置;图形编辑使用预设注入的工作区,宿主仍负责保存和资源。不要重复安装同名扩展。
createBlockEditorPresetimport { createBlockEditor } from '@quirekit/block-editor'
import '@quirekit/block-editor/styles.css'
const instance = createBlockEditor({
element,
content: { type: 'doc', content: [{ type: 'paragraph' }] },
})配置
下面是扩展自身的默认选项。预设可以覆盖这些值;它们不等于当前文档属性。配置方法见配置插件。
maxFileSize
单个本地文件的字节上限,默认 4 MiB;超出时插入前即提示,不写入文档。
类型:number
默认:4 * 1024 * 1024
storeFile
宿主文件存储函数,接收文件、取消信号与进度回调,返回持久地址。未提供时文件以 data URL 保存在正文 JSON 中。
类型:(file: File, signal: AbortSignal, progress: (percent: number) => void): Promise<BlockResource>
默认:undefined
resolveWebCard
宿主网页元数据解析函数,返回标题、描述、图标与封面。浏览器不会自行跨域抓取网页。
类型:(url: string, signal: AbortSignal): Promise<{ title?: string; description?: string; icon?: string; cover?: string; }>
默认:undefined
命令与运行方式
以下命令由此扩展直接提供,均在当前 Editor 上调用。命令是否可用由已安装 schema、当前选区与保护策略决定;可以先用 editor.can() 查询。
| 命令 | 参数签名 |
|---|---|
applyBlockRichContent | applyBlockRichContent(request: RichContentRequest, content: readonly QuireJSONContent[]) |
这里只展示参数签名。接界面时见命令与控件,正文变更继续经过同一事务与历史。