天天看點

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

Editor.md是一款優秀的開源Markdown 編輯器,在使用中遇到的一些問題和功能改進分享給需要的夥伴。

項目位址

解決Editor.md通過代碼塊原樣輸出Emoji被強制解析問題
https://github.com/pandao/editor.md

問題

Editor.md

中,如果要輸出表情,我們隻需要通過代碼

:smiley:

就可以輸出

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

如果我們通過代碼塊形式原樣輸出

:smiley:

,就會被強制解析成

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

,這明顯不是我們想要的。

通過檢視

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

項目目前停止維護了,大家可以看我送出的

解決Editor.md通過代碼塊原樣輸出Emoji被強制解析問題
PR
原文位址:代碼彙個人部落格 http://www.codehui.net/info/15.html

繼續閱讀