CKEditor5集成Wiris MathType分数转换及版本升级问题求助
解决方案:Angular中CKEditor5 + Wiris MathType的分数转换与版本升级问题
一、解决32/3自动转为3⅔的分数转换问题
这个问题是CKEditor5的**自动格式化(Autoformat)**功能或Wiris MathType的内置转换规则导致的,可通过以下两种方式处理:
方式1:关闭CKEditor5的分数自动格式化
在CKEditor配置中,禁用Autoformat插件的分数转换规则,或直接移除该插件(若不需要其他自动格式功能):
import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; import MathType from '@wiris/mathtype-ckeditor5'; // 自定义编辑器构建,过滤移除Autoformat插件 ClassicEditor.builtinPlugins = ClassicEditor.builtinPlugins.filter( plugin => plugin.pluginName !== 'Autoformat' );
若使用官方经典构建无法直接修改,可尝试通过配置项禁用相关规则(部分版本支持):
editorConfig = { plugins: [MathType], toolbar: ['MathType'], // 移除自动格式中的分数转换规则 autoformat: { remove: ['fraction'] } };
方式2:调整Wiris MathType的转换设置
在Wiris配置中关闭自动将线性公式转为带分数的功能:
editorConfig = { plugins: [MathType], toolbar: ['MathType'], mathType: { parameters: { editorParameters: { 'convert-fractions': 'false' // 核心配置:关闭分数自动转换 } } } };
二、解决升级版本后的TypeScript错误
升级出现的TS2614和TS1005错误,是因为CKEditor5新版本使用了TypeScript 3.8+的import type语法,与项目现有TS版本或依赖组合不兼容,可按以下步骤修复:
1. 使用兼容的版本组合
CKEditor5各包版本需严格匹配,同时Wiris MathType版本要与CKEditor5版本兼容。推荐以下验证过的组合:
{ "@ckeditor/ckeditor5-angular": "^4.0.0", "@ckeditor/ckeditor5-build-classic": "^35.0.1", "@wiris/mathtype-ckeditor5": "^7.32.0" }
注意:CKEditor5的主版本号需保持一致(如均为35.x.x),避免跨版本依赖冲突。
2. 升级项目TypeScript版本
若当前Angular项目的TypeScript版本低于3.8,需升级到支持import type的版本:
- Angular 12+对应TypeScript 4.2+
- Angular 11对应TypeScript 4.0+
修改package.json中的typescript版本后重新安装依赖:
npm install typescript@~4.2.0 --save-dev
3. 临时调整TS编译配置
若无法升级TS版本,可在tsconfig.json中启用兼容模式跳过第三方库类型检查:
{ "compilerOptions": { "skipLibCheck": true, "module": "ESNext", "moduleResolution": "Node" } }
4. 清理依赖缓存
执行以下命令清理缓存并重新安装依赖:
rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者Mustafa Abdeali
相关产品推荐
相关产品推荐

