当前位置: 代码网 > it编程>前端脚本>网页编辑器 > Prism 代码高亮修改不包含 Code 标签的支持

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

2024年05月15日 网页编辑器 我要评论
在 wordpress 中加入了百度的 ueditor 编辑器后,由于自带的代码插件在使用时只会在代码外层加入 pre 标签,如图:但实际 prism 高亮需要下面这种格式的支持:<pre cl

在 wordpress 中加入了百度的 ueditor 编辑器后,由于自带的代码插件在使用时只会在代码外层加入 pre 标签,如图:

但实际 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 高亮官网地址:http://prismjs.com/

prism github  地址:https://github.com/prismjs/prism

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com