1. 程式人生 > >解決Editor.md通過程式碼塊原樣輸出Emoji被強制解析問題

解決Editor.md通過程式碼塊原樣輸出Emoji被強制解析問題

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