解决Editor.md通过代码块原样输出Emoji被强制解析问题

简介: Editor.md是一款优秀的开源Markdown 编辑器,在使用中遇到的一些问题和功能改进分享给需要的伙伴。 项目地址 https://github.com/pandao/editor.md 问题 在Editor.md中,如果要输出表情,我们只需要通过代码 :smiley: 就可以输出 。

Editor.md是一款优秀的开源Markdown 编辑器,在使用中遇到的一些问题和功能改进分享给需要的伙伴。
项目地址 img_7f969f62ee272a3be19966806fff4ad5.pnghttps://github.com/pandao/editor.md

问题

Editor.md中,如果要输出表情,我们只需要通过代码 :smiley: 就可以输出 img_09e2457de698afee11f53ef04d185587.png

如果我们通过代码块形式原样输出:smiley:,就会被强制解析成 img_09e2457de698afee11f53ef04d185587.png

,这明显不是我们想要的。

通过查看editormd.js源码,可以看到emoji这块的解析正则是这样写的:

editormd.regexs = {
    emoji  : /:([\w\+-]+):/g
}

这样问题就来了,意思就是页面所有被 : :包含的元素都会被解析成 emoji 符号。

解决办法

1丶 第一步

editormd.js中搜索editormd.regexs,修改emoji如下:

editormd.regexs = {
    emoji  : /(?!(<code>).):([\w\+-]+):(?!(<\/code>))/g
}

2丶 第二步

editormd.js中搜索text = text.replace(new RegExp(matchs[i]),大概在3434行。

 text = text.replace(new RegExp(matchs[i]), function($1, $2){

修改为

text = text.replace(emojiReg, function($1, $2){

这样就可以实现在编辑器里面原样输出代码块语法了,其他标签强制解析解决方法和这类似。

由于Editor.md项目目前停止维护了,大家可以看我提交的 img_7f969f62ee272a3be19966806fff4ad5.pngPR

原文地址:代码汇个人博客 http://www.codehui.net/info/15.html


目录
相关文章
|
C++
VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号、逗号、双引号
书写规范是非常重要的,除了统一,还要简洁。 1、VS Code识别编辑规范 在项目根目录新建.editorconfig文件,加入设置:
796 0
|
4月前
|
JavaScript 小程序
JS控制input输入特殊字符
JS控制input输入特殊字符
|
7月前
|
JavaScript 前端开发
JavaScript 语法:注释与输入 / 输出
JavaScript 语法 之 注释与输入 / 输出
30 0
JavaScript 语法:注释与输入 / 输出
|
8月前
|
JavaScript
js根据输入关键字给字体标红、变红
js根据输入关键字给字体标红、变红
|
8月前
|
JavaScript
js判断输入的全是空格
js判断输入的全是空格
|
机器学习/深度学习 移动开发 Unix
如何使用UE去除复制文本中的空格、换行符和TAB
如何使用UE去除复制文本中的空格、换行符和TAB
如何使用UE去除复制文本中的空格、换行符和TAB
|
JavaScript 前端开发 PHP
JS的字符串插值,变量长文本换行
作为一个PHPer,经常需要在html中写js jq来解析数据,形成列表、选项等等。 (谁让我们PHPer还要兼顾页面呢?? 又不会Vue,只能这样子讨讨生活。) 那么就经常遇到Html代码拼接,或者字符串拼接,可能是这样子的问题
370 0
JS的字符串插值,变量长文本换行
|
JavaScript Java
JS 字符串去除前后空格 trim(十四)
JS 字符串去除前后空格 trim(十四)
247 0
JS 字符串去除前后空格 trim(十四)
|
JSON JavaScript 数据格式
js格式化json代码,以代码格式显示到页面,一个标签直接格式化
js格式化json代码,以代码格式显示到页面,一个标签直接格式化
1037 0
js格式化json代码,以代码格式显示到页面,一个标签直接格式化