Editor.md是一款優秀的開源Markdown 編輯器,在使用中遇到的一些問題和功能改進分享給需要的伙伴。 ...
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
原文地址:代碼匯個人博客 http://www.codehui.net/info/15.html