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

所属分类: 网络编程 / 网页编辑器 阅读数: 927
收藏 0 赞 0 分享

在 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

更多精彩内容其他人还在看

关于CKeditor的非主流个性应用的设置

因为我的网站需要一个编辑器,所以用周末时间研究了一下CKeditor,终于最终修改成了合适的样子。
收藏 0 赞 0 分享

dedecms5.5 最新版ckeditor编辑器整合教程

CKEditor是fckeditor的3.0版。经过近两年的紧张开发,第一个CKEditor 3.0稳定版本终于发布。
收藏 0 赞 0 分享

javascript 网页编辑框及拖拽图片的问题

javascript 网页编辑框及拖拽图片的问题,需要的朋友可以参考下。
收藏 0 赞 0 分享

asp.net FCKeditor 2.6.3 配置说明

FCKeditor是一个功能强大支持所见即所得功能的文本编辑器,可以为用户提供微软office软件一样的在线文档编辑服务。
收藏 0 赞 0 分享

轻松实现 CKfinder进驻CKEditor3.0

看完YaSin写得“将CKfinder 整合进 CKEditor3.0 ”之后,我总觉得问题有点复杂,尤其是修改压缩了的js文件。
收藏 0 赞 0 分享

将CKfinder 整合进 CKEditor3.0的方法

CKFinder是一款基于AJAX的文件浏览器,这是ASP.NET专用版,它可以在线浏览文件、管理文件、上传文件,以树形Tree的方式展开目录,自动检测图片并生成缩略图,它是由Fckeditor公司出品,同时也可配合FckEditor来使用,可达到意想不到的效果。
收藏 0 赞 0 分享

ASp.net下fckeditor配置图片上传最简单的方法

fckeditor 的基本配置我就不讲了,讲讲图片上传这块吧;
收藏 0 赞 0 分享

ckeditor 简单配置方法

ckeditor 简单配置使用方法
收藏 0 赞 0 分享

asp.net CKEditor和CKFinder的应用

CKEditor和CKFinder在ASP.NET中的应用,需要的朋友可以参考下。
收藏 0 赞 0 分享

FCKEDITOR 的高级功能和常见问题的解决方法

FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。
收藏 0 赞 0 分享
查看更多