CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】


Posted in Javascript onJune 14, 2019

本文实例讲述了CKEditor 4.4.1 添加代码高亮显示插件功能。分享给大家供大家参考,具体如下:

随着CKEditor4.4.1的发布,以前一直困扰的代码高亮问题终于完美的得到解决,在CKEditor4.4中官方发布了Code Snippet这个代码片段的插件,终于可以完美的内嵌使用代码高亮了,以前都是使用网友自己开发的代码高亮插件。下面就来介绍如何使用Code Snippet这个代码高亮插件。本文还介绍了CKEditor中如何安装Code Snippet插件。

新版本附加信息

  1. CKEditor 4.4的更新详情:http://ckeditor.com/whatsnew
  2. CKEditor 官方对代码高亮插件Code Snippet的文档:https://docs.ckeditor.com/#!/guide/dev_codesnippet
  3. Code Snippet的下载地址:http://ckeditor.com/addon/codesnippet

Code Snippet简介

Code Snippet是CKEditor4.4.1的新插件,主要提供添加代码片段高亮显示的功能。另外注意一点的是,Code Snippet只是作为CKEditor的插件,真正实现代码高亮的是highlight.js这个代码高亮JS库。

Code Snippet只是将highlight.js作为默认的高亮库,由于highlight.js已经集成在Code Snippet中,所以我们在使用CKEditor时候是不需要另外再引用highlight.js这个库。(点击这里查看highlight.js的官方网站)。

以前的CKEditor版本由于没有比较好的代码高亮插件,都是自己自定义插件,当时用的是SyntaxHighlighter这个代码高亮库。大家也可网上搜下SyntaxHighlighter的资料

如何安装Code Snippet?添加代码片段高亮插件的具体步骤

添加Code Snippet的方法很简单,不过由于版本兼容问题,目前官网上这个插件对4.4兼容最好,其他兼容则未进行测试,所以使用这个插件最好是将CKEditor升级到4.4.1。

如果已经熟悉CKEditor的插件机制,那么我们只要到官网上将Code Snippet下载下来(下载地址见文章顶部),将里面的整个文件夹解压到ckeditor文件夹下的plugins文件夹内。

CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】

然后设置下ckeditor的config.js配置文件,将插件添加进去即可,代码如下(这里只设置了一个插件属性,其他属性可根据需要设置):

CKEDITOR.editorConfig = function (config) {
  //添加插件,多个插件用逗号隔开
  config.extraPlugins = 'codesnippet';
  //使用zenburn的代码高亮风格样式 PS:zenburn效果就是黑色背景
  //如果不设置着默认风格为default
  config.codeSnippet_theme = 'zenburn';
}

也可以在编辑器初始化的使用下面代码添加高亮插件:

CKEDITOR.replace('文本框ID'
,{extraPlugins: 'codesnippet',codeSnippet_theme: 'zenburn'}
);

这里有一点需要注意,如果按照上面添加插件的步骤而出现下面这两个错误:

  1. CKEDITOR.resourceManager.load] Resource name "widget" was not found at"http://localhost:16577/Scripts/ckeditor/plugins/widget/plugin.js?t=
  2. [CKEDITOR.resourceManager.load] Resource name "lineutils" was not found at "http://localhost:16577/Scripts/ckeditor/plug

这是因为下载的CKEditor缺少widget和lineutils插件,到官网将这两个插件下载下来,只要将这两个插件解压到ckeditor文件夹下的plugins文件夹内就可以了。一般是先出现第一个widget插件无法找到的错误,添加了widget插件后才会出现第二个找不到lineutils插件的错误,可见Code Snippet需要依靠这两个插件。这两个插件的下载地址如下:

  1. http://ckeditor.com/addon/widget
  2. http://ckeditor.com/addon/lineutils

还有最简单的方式,首先打开Code Snippet下载地址,将插件添加到自定义CKEditor编辑器

CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】

然后进入自定义CKEditor编辑器页面,这里可以看到已经将代码高亮插件集成到CKEditor里面了,最后点击下载就可以了,当然这里有很多自定义UI和插件,可以选择自己需要的插件和喜欢的编辑器界面。

CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】

这样就完美的添加上了代码片段高亮插件了。

如何让代码片段在普通页面上显示高亮?

我们会发现,虽然在编辑器中添加的代码片段有高亮效果,但是将编辑器里的代码片段放到页面中却没有高亮的效果。这是因为编辑器的插件已经默认集成了highlight.js这个代码高亮库,所以我们要在页面上显示高亮就得重新引用和添加highlight.js库。

我们先看下编辑器中的高亮代码:

<pre>
<code class="language-html"><!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8" />
  <title>测试页面</title>
</head>
<body>
<div>代码片段高亮效果</div>
</body>
</html></code></pre>

可以看到 高亮的效果主要是根据<pre>标签和 <code class="language-html">这两个标签来显示的,其中language-html表示的显示高亮语言为HTML。highlight.js就是根据这两个标签来显示高亮效果。

我们首先要将highlight.js下载下来(下载地址,可以选择要高亮的编程语言种类),然后在需要代码高亮的页面添加下面的代码:

<!--开头这里的样式为默认的风格,可以根据自己的喜好更换风格-->
<!--我的高亮效果是zenburn-->
<link rel="stylesheet" href="styles/default.css" rel="external nofollow" >
<script src="highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

要注意更改css样式和JS的引用地址,地址以自己网站中highlight.js的存放地址为准。另外高亮库默认使用的是default.css的高亮风格,这里是highlightjs的各种代码高亮风格的显示效果,大家可以到上面测试选择自己喜欢的高亮风格:http://highlightjs.org/static/test.html。highlightjs的具体使用方法可以看官网的文档:http://highlightjs.org/usage/。

到这里就可以完整的将代码片段进行高亮显示了。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
利用javascript实现一些常用软件的下载导航
Aug 03 Javascript
jQuery实现图片信息的浮动显示实例代码
Aug 28 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 Javascript
浅谈JavaScript中null和undefined
Jul 09 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
微信小程序 图片宽度自适应的实现
Apr 06 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
浅谈React 服务器端渲染的使用
May 08 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 Javascript
vue 自定义组件的写法与用法详解
Mar 04 Javascript
利用JavaScript将Excel转换为JSON示例代码
Jun 14 #Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
Jun 14 #Javascript
Vue动态创建注册component的实例代码
Jun 14 #Javascript
基于Proxy的小程序状态管理实现
Jun 14 #Javascript
深度了解vue.js中hooks的相关知识
Jun 14 #Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 #Javascript
在Vue中使用icon 字体图标的方法
Jun 14 #Javascript
You might like
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php二维码生成
2015/10/19 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python实现简单多线程任务队列
2016/02/27 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
Python 中的lambda函数介绍
2018/10/10 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
2016年企业安全生产月活动总结
2016/04/06 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
python​格式化字符串
2022/04/20 Python