使用SyntaxHighlighter實現代碼高亮顯示

SyntaxHighlighter官網https://github.com/syntaxhighlighter/syntaxhighlighter;

本文使用了3.0.83版本;引入css文件和兩個js文件;

shCoreDefault.css文件:https://files.cnblogs.com/files/stono/shCoreDefault.css

shCore.js文件:https://files.cnblogs.com/files/stono/shCore.js

shBrushAll.js文件:https://files.cnblogs.com/files/stono/shBrushAll.js

增加一個encodeHTML方法:

var REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
function encodeHtml(s){
      return (typeof s != "string") ? s :
          s.replace(REGX_HTML_ENCODE,
                    function($0){
                        var c = $0.charCodeAt(0), r = ["&#"];
                        c = (c == 0x20) ? 0xA0 : c;
                        r.push(c); r.push(";");
                        return r.join("");
                    });
}

 

在需要渲染的地方調用如下功能代碼:

$("#result_div").empty();
$("#result_div").prepend("<pre>"+encodeHtml(code)+"</pre>");
var class_v="brush : java;"; 
$("#result_div pre").addClass(class_v);
SyntaxHighlighter.highlight();

其中的code就是源代碼;

class_v表示需要渲染的語言,可以是java/js等,在shBrushAll.js中有記錄;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章