实现插入公式的富文本框(tinymce+kityformula-editor)

官网:http://tinymce.ax-z.cn/

安装tinymce

https://www.jianshu.com/p/aa01ba44ce99

vue安装tinymce参考链接

在vue2.0+,vuecli3.0+中使用tinymce及实现多图上传,文件上传,公式编辑等功能 - huihuihero - 博客园

tinymce安装后遇见的问题

1、报错failed to fetch dynamically imported module

最后没有按照安装官网步骤在main文件注册,而是直接在使用的地方引用就不会报错

2、报错failed to resolve import 'tinymce/plugins/fullpage' from 'src\components\TEditor.vue'

发现如下插件都会报错

简单粗暴的将这些都注释了

3、报错/models/dom/model.js nre::ERR_ABORTED 404 (NOT FOUND) tinymce.js:4947

解决办法:

在TEditor.vue文件添加如下代码:

import 'tinymce/models/dom/model.js'

4、报错failed to load plugin:template from url plugins/template/plugin.js

因为上面已经注释了相关import文件引入,但是下面plugins没有删除掉

解决办法:将文件中这两个里面,相关注释掉的都删除

5、报错/skins/content/default/content.css 404

修改TEditor.vue如下代码:

引入kityformula-editor实现公式

安装步骤,参考链接:kityformula-editor 数学公式 | TinyMCE中文文档中文手册

下载好压缩包

在node_modules目录中将timymce下plugins文件夹复制粘贴到public->tinymce下

将解压后的 kityformula-editor 包放到里面

TEditor.vue文件调整代码

引入kityformula-editor后出现的问题

1、没有显示公式两字

在index.html中加入如下代码

2、点击公式,打开弹窗报错/plugins/kityformula-editor/kityformula.html 404

修改kityformula-editor文件下的plugin.js和plugin.min.js文件的这行代码

插入的公式会被识别成图片

在kityformula-editor的包里面有个plugin.js、plugin.min.js,他的代码第10行对base64图片双击时进行了字符串格式判断,他判断的是整个字符串是一个img标签,然而我们最终得到的是p标签包裹的img以及其他的元素,所以我们直接把这个if判断去掉就可以了。

复制进去的latex公式无法在编辑框中正确回显为公式

我们

公式创建完成以后保存下来的字符串,回显时无法正确回显(研究发现是data-latex中的\被误认为是转义字符了)

我们在拿到最终生成的字符串值以后,需要对这个字符串处理一下,将字符串中的\都替换为\\以后再上传给服务器。以下两种方案都可以的:

假设最终拿到的公式字符串存为content,

content.split('\\').join('\\\\')

content.replace(/\\/g,'\\\\')

图片不上传,直接使用base64会提示图片上传失败

将init中加入automatic_uploads: false,禁止图片自动上传我们只使用base64记录图片,我们也尝试过万一其他图片需要上传怎么办,后来发现这个base64图片的配置确实会影响到其他正常上传的图片。也就是说要么都用base64,要么都上传到服务器,不过我们肯定是不希望数学公式上传到服务器的,因为我并不需要记录他。

相关推荐
浅水壁虎18 小时前
vue基础(第二章 )
前端·javascript·vue.js
腻害兔20 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?
java·前端·javascript·vue.js·产品经理·ai编程
m0_547486661 天前
《Vue.js + uni-app全栈开发从入门到实践 》全套PPT课件2026版
vue.js·uni-app
达子6661 天前
第10章_HarmonyOs开发图解 用JS开发UI
vue.js
奶糖 肥晨1 天前
想return数据 返回的确是函数问题处理
vue.js
无巧不成书02181 天前
Vue+Vue-CLI全平台零基础搭建教程
前端·javascript·vue.js·vue·前端开发·vue-cli·前端环境搭建
腻害兔1 天前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro IoT 物联网模块:从协议网关到物模型,一文讲透开源 IoT 平台架构
前端·vue.js·物联网·产品经理·ai编程
张人玉1 天前
基于 Vue 3 + ECharts + Express + SQLite 的可视化大屏与业务管理系统——YOLOv8 高精度车辆行人检测与计数系统
数据库·vue.js·yolo·sqlite·echarts·express
腻害兔2 天前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
sugar__salt2 天前
Vue3 表单双向绑定与响应式核心 API 技术详解
前端·javascript·vue.js