解決Editor.md通過程式碼塊原樣輸出Emoji被強制解析問題
阿新 • • 發佈:2018-12-22
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