美文网首页代码汇编程王国
解决Editor.md通过代码块原样输出Emoji被强制解析问题

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

作者: 代码汇 | 来源:发表于2018-12-21 23:42 被阅读15次

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

    问题

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

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

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

    通过查看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项目目前停止维护了,大家可以看我提交的 PR


    原文来自:代码汇个人博客 https://www.codehui.net/info/15.html

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/hpybkqtx.html