最近在弄东西,需要把百度编辑器UEditor发布的代码高亮显示,想用Prism.js,但是Prism.js仅支持类似
1 | <pre><code class = "code language-代码语言" >代码</code></pre>
|
这种格式,而百度编辑器UEditor默认发布的代码则是:
1 | <pre class = "brush:代码语言;toolbar:false" >代码</pre>
|
最好的办法就是前端显示的时候给转换一下,找了好多,都不理想,好歹从某一篇文章中提取出来一点可用的,特意写一下,以后备用!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <script>
var $codepre = $( "pre[class]" );
if ( $codepre .length>0){
for ( var i = 0;i< $codepre .length;i++){
var item = $codepre .eq(i);
var language = "" ;
item.attr( "class" ).replace(/brush:([^;]+)/, function (a,b){
language = b;
});
if (language){
var codehtml = item.html();
var code = $( "<code>" );
code.attr( "class" , "code lang-" +language);
code.html(codehtml);
item.html(code);
Prism.highlightElement(code[0]);
}
}
}
</script>
|
如果用了显示行数的插件,可以用:
1 2 3 4 5 6 7 8 9 | <script type= "text/javascript" >
( function (){
var pres = document.querySelectorAll( 'pre' );
var lineNumberClassName = 'line-numbers' ;
pres.forEach( function (item, index) {
item.className = item.className == '' ? lineNumberClassName : item.className + ' ' + lineNumberClassName;
});
})();
</script>
|
最终样式:
TAGS
百度编辑器UEditor
百度编辑器UEditor
借助Prism.js
借助Prism.js
实现文章代码高亮显示
实现文章代码高亮显示
实用教程
实用教程