Prism 代碼高亮修改不包含 Code 標(biāo)簽的支持
在 WordPress 中加入了百度的 UEditor 編輯器后,由于自帶的代碼插件在使用時只會在代碼外層加入 pre 標(biāo)簽,如圖:
但實際 Prism 高亮需要下面這種格式的支持:
<pre class="line-numbers language-csharp"> <code> //高亮代碼 </code> </pre>
所以為了能夠支持 pre 中沒有 code 標(biāo)簽的情況,在文件 Prism.js 中查找 highlightAll 并修改如下代碼:
.... highlightAll: function(async, callback) { //var elements = document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'); //for (var i=0, element; element = elements[i++];) { // _.highlightElement(element, async === true, callback); //} //支持 PRE 標(biāo)簽,修改為 var clsReg = /\s*\blanguage-\b\s*/; var pres = document.querySelectorAll("pre"); for (var i = 0, pre; pre = pres[i++];) { var isCode = false; if ((pre.firstChild && (isCode = (pre.firstChild.tagName === "CODE")) && clsReg.test(pre.firstChild.className)) || clsReg.test(pre.className)) { if (!isCode) pre.innerHTML = "<code>" + pre.innerHTML + "</code>"; _.highlightElement(pre.firstChild, async === true, callback); } } } ....
修改后進行 Js 壓縮,然后覆蓋原文件,然后在 WordPress UEditor 中插入的代碼在前端頁面就能高亮顯示了。
Prism 高亮官網(wǎng)地址:http://prismjs.com/
Prism GitHub 地址:https://github.com/PrismJS/prism
相關(guān)文章
DISCUZ論壇的UBB編輯器(增加靈活調(diào)用,支持ASP UBB解析)打包下載
從Discuz分離的網(wǎng)頁編輯器,大家可以加到自己的頁面上2008-04-04FCKeditor smarty 編輯器的應(yīng)用PHP
自己仔細研究一下很容易解決你這個問題的。這并不是一個很困難的任務(wù)。其實這里很多都是菜鳥級別的2012-07-07輕松實現(xiàn) CKfinder進駐CKEditor3.0
看完YaSin寫得“將CKfinder 整合進 CKEditor3.0 ”之后,我總覺得問題有點復(fù)雜,尤其是修改壓縮了的js文件。2010-01-01