news 2026/6/15 14:19:23

xhEditor导入Latex公式生成MathML

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
xhEditor导入Latex公式生成MathML

山西前端打工人的CMS改造历险记

大家好,我是山西某不知名前端码农,最近接了个企业官网CMS的外包单子。客户爸爸提出了个"简单"需求——要在文章编辑器里加个Word一键粘贴功能。听起来简单?呵呵,让我这个月薪3000的码农给你讲讲这680块预算的奇幻漂流…

客户需求の迷之操作

客户要求:

  1. 支持Word/Excel/PPT/PDF导入(您这是要搞Office全家桶啊)
  2. 保留所有花里胡哨的格式(包括那些我都没见过的公式)
  3. 支持从微信公众号复制(微信:你礼貌吗?)
  4. 图片自动上传服务器(我服务器都快炸了)
  5. 预算680块(老板您这是要我的命啊)

最骚的是——客户说这是为了方便高龄用户!合着咱们高龄用户都是Word高手呗?

技术选型の痛苦面具

前端部分

我用的Vue3 + xhEditor,这xhEditor年纪比我爷爷都大。找了一圈发现https://www.tiny.cloud/的付费版能搞定,但680块怕是连人家一个按钮都买不起。

最后我决定用https://www.wangeditor.com/ + 自制插件,下面是我的骚操作:

// wangEditor Word粘贴插件constWordPastePlugin=(editor)=>{editor.config.customPaste=(e)=>{consthtml=e.clipboardData.getData('text/html')if(html.includes('mso-style')){e.preventDefault()// 这里调用后端清洗Word HTMLaxios.post('/api/clean-word-html',{html}).then(res=>{editor.insertHtml(res.data.html)// 异步上传图片uploadImages(res.data.images)})}}document.addEventListener('paste',editor.config.customPaste)}// 图片上传函数asyncfunctionuploadImages(images){for(letimgofimages){constformData=newFormData()formData.append('file',img.blob)awaitaxios.post('/api/upload',formData)}}

后端部分

客户说后端随便,我果断选了PHP(因为便宜啊!)。下面是处理Word HTML的骚代码:

// 清洗Word HTMLfunctioncleanWordHtml($html){// 1. 提取所有图片preg_match_all('/]+>/i',$html,$images);// 2. 替换MS Office特有样式$html=preg_replace('/class="Mso[^"]+"/','',$html);$html=str_replace('mso-','',$html);// 3. 处理公式(这里是个大坑)$html=handleEquations($html);return['html'=>$html,'images'=>extractImages($images[0])];}// 处理公式的玄学代码functionhandleEquations($html){// 1. 匹配Latex公式$html=preg_replace_callback('/\$([^$]+)\$/',function($matches){returnlatexToMathML($matches[1]);},$html);// 2. 处理MathType公式(这里我选择放弃治疗)$html=str_replace('
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:13:49

彝语火把节庆典预告:村长数字人通知活动安排

彝语火把节庆典预告:村长数字人通知活动安排 在四川凉山的某个清晨,村委会的大喇叭还没响起,微信群里却先热闹了起来——一段视频正在快速转发。画面中,“村长”身穿彝族传统服饰,神情庄重地宣布:“今年火把…

作者头像 李华
网站建设 2026/6/15 13:18:34

希腊语神话故事讲述:宙斯数字人亲述奥林匹斯传说

宙斯的数字之声:当AI讲述奥林匹斯传说 在古希腊神庙的回音中,宙斯的声音曾响彻云霄。今天,这道威严之声不再只存在于史诗与戏剧之中——它正通过一块屏幕、一段音频、一个由AI驱动的数字人形象,向全球观众娓娓道来普罗米修斯盗火、…

作者头像 李华
网站建设 2026/6/15 13:17:19

残障人士表达辅助:HeyGem生成语音对应面部动作演示

残障人士表达辅助:HeyGem生成语音对应面部动作演示 在特殊教育学校的课堂上,一个患有重度脑瘫的孩子静静地看着屏幕。他无法清晰说话,但当老师点击播放按钮时,视频中的“数字自己”微笑着开口:“老师好,我今…

作者头像 李华
网站建设 2026/6/15 13:20:02

爱尔兰语盖尔语复兴计划:教师数字人推动民族文化传承

爱尔兰语盖尔语复兴计划:教师数字人推动民族文化传承 在爱尔兰西海岸的Gaeltacht地区,老一辈人仍用盖尔语交谈,而年轻一代却越来越多地转向英语。这种语言断层并非个例——全球每两周就有一种语言消失。面对这一现实,技术能否成为…

作者头像 李华
网站建设 2026/6/12 17:51:01

诗词朗诵艺术呈现:古风数字人演绎唐诗宋词意境

诗词朗诵艺术呈现:古风数字人演绎唐诗宋词意境 在短视频与AI技术深度融合的今天,传统文化的传播方式正经历一场静默却深刻的变革。我们不再满足于将《将进酒》的文字投影在屏幕上,而是期待它被“吟诵”出来——由一位身着青衫、眉目如画的古人…

作者头像 李华
网站建设 2026/6/15 13:18:11

瑜伽冥想引导:舒缓语音+数字人形象营造沉浸氛围

瑜伽冥想引导:舒缓语音数字人形象营造沉浸氛围 在快节奏的现代生活中,越来越多的人开始通过瑜伽与冥想寻求内心的平静。然而,传统的音频引导虽然能提供声音陪伴,却常常让人“听得到、看不见”——缺乏视觉锚点,注意力容…

作者头像 李华