Editor.md是一款優秀的開源Markdown 編輯器,在使用中遇到的一些問題和功能改進分享給需要的夥伴。
項目位址
https://github.com/pandao/editor.md![]()
解決Editor.md通過代碼塊原樣輸出Emoji被強制解析問題
問題
在
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
項目目前停止維護了,大家可以看我送出的

原文位址:代碼彙個人部落格 http://www.codehui.net/info/15.html