CharacterCount · 字数统计与上限
通过 editor.storage.characterCount 读取字符与词数,也可限制输入长度。默认按字符串长度计字符、空格分词;中文分词需要自定义计数函数。
通过 editor.storage.characterCount 读取字符与词数,也可限制输入长度。默认按字符串长度计字符、空格分词;中文分词需要自定义计数函数。
@quirekit/extensions · MIT
编辑器适用范围
层次:共享文档能力
| 编辑器 | 状态 | 所需装配与边界 |
|---|---|---|
| Classic | 需适配 | 需由宿主连接本页所列服务、目标与生命周期,并验证所选 View 和文档模型。核心接口可复用,但没有一段无宿主参数的通用产品安装代码。 |
| Block | 直接支持 | createBlockEditorPreset — createBlockEditor 默认预设已装配此能力。通过 preset 中对应子项配置;图形编辑使用预设注入的工作区,宿主仍负责保存和资源。不要重复安装同名扩展。 |
“直接支持”指已有上述产品装配;具体交互、宿主服务和格式支持仍有各自条件。状态与接入规则。许可独立显示。
接入
pnpm add @quirekit/extensions@alpha
在创建 Editor 时放入 extensions。挂载容器、视图和保存由宿主提供,见快速开始。
import { CharacterCount } from '@quirekit/extensions'
const counter = CharacterCount.configure({ limit: 5000 })
安装时按包声明选择兼容版本,外部可用版本以分发源为准。本站使用工作区 Alpha;许可标签来自入口所属包,使用条件见支持与许可。
按编辑器接入
以下片段沿用已挂载的宿主元素 element,宿主负责容器尺寸与保存;退出页面时调用 instance.destroy()。已有预设装配的能力不要再重复追加;需要宿主端口的入口应先完成下方配置。
Classic · 需适配
需由宿主连接本页所列服务、目标与生命周期,并验证所选 View 和文档模型。核心接口可复用,但没有一段无宿主参数的通用产品安装代码。
Block · 直接支持
createBlockEditor 默认预设已装配此能力。通过 preset 中对应子项配置;图形编辑使用预设注入的工作区,宿主仍负责保存和资源。不要重复安装同名扩展。
createBlockEditorPresetimport { createBlockEditor } from '@quirekit/block-editor'
import '@quirekit/block-editor/styles.css'
const instance = createBlockEditor({
element,
preset: { characterCount: { limit: 5000 } },
content: { type: 'doc', content: [{ type: 'paragraph' }] },
})配置
下面是扩展自身的默认选项。预设可以覆盖这些值;它们不等于当前文档属性。配置方法见配置插件。
limit
最大允许字符数。null、undefined 或 0 表示不限制;已有超长内容可能被裁剪。
类型:number | null | undefined
默认:null
mode
字符统计方式:textSize 计文本,nodeSize 计 ProseMirror 节点尺寸。
类型:"nodeSize" | "textSize"
默认:"textSize"
textCounter
字符计数函数,接收提取出的纯文本并返回数量。需要按 Unicode 字符或字形计数时替换默认函数。
类型:(text: string): number
默认:(text: string) => text.length
wordCounter
词数统计函数。默认按空格分词;中文等语言需要自己的分词方法。
类型:(text: string): number
默认:(text: string) => text.split(" ").filter((word) => word !== "").length
命令与运行方式
此入口没有直接声明可枚举的命令。组合扩展的命令由子扩展提供;产品插件通过 contribution 或文件服务工作。不能把安装入口名称当作命令调用。
limit 会参与事务过滤;打开已经超限的内容可能触发初始裁剪。需要无损读取外部文档时,先在宿主判断长度,再决定是否启用限制。