源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Prism 代码高亮修改不包含 Code 标签的支持

  • 时间:2020-08-16 13:31 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Prism 代码高亮修改不包含 Code 标签的支持
在 WordPress 中加入了百度的 UEditor 编辑器后,由于自带的代码插件在使用时只会在代码外层加入 pre 标签,如图: [img]http://files.jb51.net/file_images/article/201703/20170325223000.png[/img] 但实际 Prism 高亮需要下面这种格式的支持:
<pre class="line-numbers language-csharp">
  <code>
    //高亮代码
  </code>
</pre>
所以为了能够支持 pre 中没有 code 标签的情况,在文件 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 标签,修改为
  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 高亮官网地址:[url=http://prismjs.com/]http://prismjs.com/[/url] Prism GitHub  地址:[url=https://github.com/PrismJS/prism]https://github.com/PrismJS/prism[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部