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

所属分类: 网络编程 / 网页编辑器 阅读数: 958
收藏 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

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

Ewebeditor 文件上传问题

Ewebeditor 上传的文件要么是直接播放或显示的,要么是用固定的格式做一个链接。
收藏 0 赞 0 分享

PHP网页 Ewebeditor 编辑器嵌入方法

因为ewebeditor编辑器的功能强大,容易扩展等原因,一直是大家比较喜爱的编辑器,所以下面介绍下ewebeditor如何跟php结合。
收藏 0 赞 0 分享

FckEditor 上传图片后图片变小了!问题解决

我用fckeditor 上传图片时,只要图片一大,上传到服务器后就变小了,而且图片颜色也失真了。
收藏 0 赞 0 分享

fckeditor asp版本的文件重命名

最近不得不研究FCKEDITOR,而且是ASP版本。对其文件上传后的重命名,很郁闷。下面记录我修改的过程,部分函数来自网络。
收藏 0 赞 0 分享

FckEditor 中文配置手册

FckEditor 中文配置手册,对于fckeditor不是很熟悉的朋友可以看下。快速的掌握这个应用比较广泛的网页在线编辑器。
收藏 0 赞 0 分享

FCKEditor网页编辑器 几点使用心得

FCKEditor网页编辑器 几点使用心得,需要的朋友可以参考下。
收藏 0 赞 0 分享

FCK 编辑器焦点问题

在使用FCK编辑器的时候,我们经常会进行对FCK编辑器的赋值操作,赋值的操作有两个关键的地方,如果不清楚的话出了错还百思不得其解.
收藏 0 赞 0 分享

添加FCKeditor插件需要注意的地方

今天,在做程序的时候发现 FCKeditor功能并不强大(开始还不知道可以用插件,汗~),至少没有上传视频,专辑,音乐,水印等功能(以前我也修改过DVBBS的编辑器,也自定义了很多使用按钮).
收藏 0 赞 0 分享

javascript 获取FCKeditor内容

javascript获取FCKeditor内容,需要的朋友可以参考下。
收藏 0 赞 0 分享

eWebEditor 上传文件提示格式不正确的解决方法

eWebEditor上传个别图片时出现:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!,在WINDOWSXP下使用该组件正常,却在WINDOWS2003上提示
收藏 0 赞 0 分享
查看更多