SyntaxHighlighter配合CKEditor插件轻松打造代码语法着色_网页编辑器

上网搜索了一下相关的文章不少,大同小异,本人一直使用的是CKeditor的文字编辑器,所以偿试使用网上很多网友介绍的SyntaxHighlighter配合CKEditor插件的方式实现。可能是因为SyntaxHighlighter和CKEditor版本不同,过程中遇到了一些问题,解决的同时也根据个人理解做部分调整,所以本文所描述的方法仅供参考。

一、SyntaxHighlighter简介

SyntaxHighlighter(原名:dp.SyntaxHighlighter)是一套在浏览器上对各种代码进行语法着色的独立JavaScript库。

下载网站:http://alexgorbatchev.com/SyntaxHighlighter/
下载:http://www.jb51.net/codes/15916.html

本文使用的版本是3.0.83版,下载后只需要syntaxhighlighter文件夹下的“scripts”和“styles”文件夹内的文件,在代码语法着色高亮显示的页面引用“styles/shCore.css”样式文件,“scripts/shCore.js”JS文件,因为每一种代码语言都要引用各自的JS文件,为了降低HTTP请求,把所有代码语言的JS文件内容都放到一个“scripts/shBrushSeaYee.js”JS文件里,把所代码写成一行,优化一下。

例如:

复制代码 代码如下:

<link rel="stylesheet" type="text/css" href="/syntaxhighlighter/styles/shCoreDefault.css" />
<script language="javascript" type="text/javascript" src="/syntaxhighlighter/scripts/shCore.js"></script>
<script language="javascript" type="text/javascript" src="/syntaxhighlighter/scripts/shBrushSeaYee.js"></script>

二、CKEditor简介

CKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。它原名FCKEditor,在2009年发布更新到3.0,并改名为CKEditor。原来叫FCK,是因为最初的开发者叫Frederico Calderia Knabben;现在叫CK,意指"Content and Knowledge"。据官方的解释,CKEditor是对FCKEditor的代码的完全重写,而且此项工作从2007年就开始了,更新包括:新的用户界面,一个支持Plug-in的Javascript API,并提供对视觉障碍者的使用支持。

下载网站:http://ckeditor.com/

本文使用的版本是3.5.3版,安装配置都比较简单,本文不再赘述。

三、CKEditor代码语法着色高亮显示的插件开发

1、在"ckeditor\plugins\"目录下新建一个"insertcode"目录,然后在"insertcode"目录下新建一个"plugin.js",输入以下代码:

复制代码 代码如下:

CKEDITOR.plugins.add('insertcode',
{
init: function(editor)
{
//plugin code goes here
var pluginName = 'Insertcode';
CKEDITOR.dialog.add(pluginName, this.path + 'insertcode.js');
editor.config.flv_path = editor.config.flv_path || (this.path);
editor.addCommand(pluginName, new CKEDITOR.dialogCommand(pluginName));
editor.ui.addButton('Insertcode',
{
label: '插入代码',
command: pluginName,
icon: this.path + 'insertcode.gif'
});
}
});

注:第1行代码中“insertcode”必须与文件夹名称相同且区分大小写字母,因为在Linux系统的Web服务器中,路径是区分大小写字母的。
2、"insertcode"目录下放入一个"insertcode.gif"16*16大小的图片,可自己做或上网找。
3、"insertcode"目录下新建一个"insertcode.js",输入如下代码:

复制代码 代码如下:

CKEDITOR.dialog.add('Insertcode', function(editor){
var escape = function(value){return value;};
return{
title: '插入代码',
resizable: CKEDITOR.DIALOG_RESIZE_BOTH,
minWidth: 720,
minHeight: 520,
contents: [{
id: 'cb',
name: 'cb',
label: 'cb',
title: 'cb',
elements: [{
type: 'select',
label: 'Language',
id: 'lang',
required: true,
'default': 'csharp',
items: [['ActionScript3', 'as3'], ['Bash/shell', 'bash'], ['ColdFusion', 'cf'], ['C#', 'csharp'], ['C++', 'cpp'], ['CSS', 'css'], ['Delphi', 'delphi'], ['Diff', 'diff'], ['Groovy', 'groovy'], ['JavaScript', 'js'], ['Java', 'java'], ['JavaFX', 'jfx'], ['Perl', 'perl'], ['PHP', 'php'], ['Plain Text', 'plain'], ['PowerShell', 'ps'], ['Python', 'py'], ['Ruby', 'rails'], ['Scala', 'scala'], ['SQL', 'sql'], ['Visual Basic', 'vb'], ['XML', 'xml']]
}, {
type: 'textarea',
style: 'width:718px;height:450px',
label: 'Code',
id: 'code',
rows: 31,
'default': ''
}]
}],
onOk: function(){
code = this.getValueOf('cb', 'code');
lang = this.getValueOf('cb', 'lang');
html = '' + escape(code) + '';
editor.insertHtml("<pre class=\"brush:" + lang + ";\">" + html + "</pre>");
},
onLoad: function(){}
};
});

4、在"ckeditor\"目录下找到“config.js”文件,这是CKEditor的配置文件,添加如下代码:

复制代码 代码如下:

config.extraPlugins = 'insertcode';

注:代码中“insertcode”也必须与文件夹名称相同,区分大小写字母。

要在CKEditor工具栏添加按钮就在此配置文件中添加上“,Insertcode”,依然要注意区分大小写字母。至此就大功造成了。

时间: 2024-09-19 09:08:04

SyntaxHighlighter配合CKEditor插件轻松打造代码语法着色_网页编辑器的相关文章

fckeditor 代码语法高亮_网页编辑器

先是IE: 1.遗留的问题:隐藏的源码和格式化后的代码有会有问题. 经上次研究的结果,两处的代码有可能不对,主要是HTML的特别代码,像代码里有标签<div>,JavaScript代码里有&alt等.这里的解决方法很简单:只要替换一下就可以了,不过要注意,在进行格式化之前就进行替换.因为隐藏的代码也是要替换的,最后取的时候也要替换回去,但是要反顺序.代码如下: 复制代码 代码如下: .replace(/&/g, "&") .replace(/<

CKEditor 取消转义的两种方法_网页编辑器

话说程序员的博客总是用到SyntaxHighlighter之类的来在pre标签里贴一堆代码.于是因为装了CKEditor for WordPress就一直觉得很讨厌,在HTML标签里写下一些代码,到了Visual里就被转义了.比如>和<就变成了><虾米虾米的.话说今天心血来潮去Google了一下,CKEditor的设置文档里还真的有相关的设置,请围观这里! 配置ckeditor插件目录下的ckeditor.config.js文件,加入下面这行. 复制代码 代码如下: config.

xheditor所见即所得文本编辑器(代码高亮显示修改)_网页编辑器

所见即所得的文本编辑器目前在网上流传的已经有很多了,并且都比较优秀,就我个人而言,用过的有以下几个:    · 第一个接触的是ewebeditor,用在我的毕业设计里面,那时候是顺便选的,对这类东西也没什么了解,现在这个编辑器已经相当猛了:    · 后来工作中用了FCKEdier,原因很简单,这个文本编辑器已经有相应的asp.net服务器端控件,封装得很棒,不过毕竟是封装好了的控件,存在着一定的局限,而且目前这个文本编辑器已经全面改版,并且现在的名字叫CKEdier,现在所在公司的项目也是用这

关于CKeditor的非主流个性应用的设置_网页编辑器

CKeditor,以前叫FCKeditor,已经使用过好多年了,功能自然没的说.最近升级到3.0版,好像重写了代码,所以构建的方式也有了些变化,应该说是更简单了. 相关地址: 官方网站:http://ckeditor.com/ 下载地址:http://ckeditor.com/download CKfinder:http://ckfinder.com/ 用于上传的插件(有四种语言版本,根据需要下载) 部署: 将CKeditor下载下来,解压网站/ckeditor/下面(当然名字可以修改,只是需要

ckeditor的使用和配置方法分享_网页编辑器

一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src="ckeditor/ckeditor.js"></script> 2.在使用编辑器的地方插入HTML控件<textarea> <textarea id="TextArea1" cols="20" rows=&quo

syntaxhighlighter 去掉右上角问号图标的三种方法_网页编辑器

使用免费产品就有帮它宣传的义务,所以,在使用该工具时,会自动显示一个帮助图标,点击它会提示访问官方网站并呼吁捐款,付费后可以去掉该图标. syntaxhighlighter       官方的做法无可非议,不过如果我们想取消这个看起来比较碍眼的图标,又不想付费,那有什么办法呢?如下是我获知的三种方法:       方法一       在网页前面,通常是在<head></head>里加上如下代码: <script type="text/javascript"

ckeditor syntaxhighlighter代码高亮插件配置分享_网页编辑器

最近由于自己想做一个网站形式的代码库,自已写一个在线文本编辑器,对于现在的我来,确实是很不切实际,呵呵!再说了,现在有一个非常好的在线文本编辑器(ckeditor)了,我和必再去费这等功夫呢!有现成的,拿过用就是的呗!正所谓的拿来主义!不过这个在线文本编辑器,对于我们程序员来说有一个算是缺陷吧!没有代码高亮的功能!这样把代码贴上去,很不好看!今天晚上,我总是把他给弄出来了.当然也采在别人的肩膀上做成的.在此感谢他们的分享!费话不多说了!咱们进入正题吧! 首先去官方网站下载个ckeditor 其次

CKeditor与syntaxhighlight打造joomla代码高亮_网页编辑器

(效果如图所示!) 最近在用csdn和cnblogs发帖子和写随笔的时候,发现了好多的IT的网站或者和代码有关系的一些论坛,博客之类,他们都有一个非常好的语法高亮!很强大! 看了这儿效果很不错的,因为,自己也用joomla建了小小的消遣的站点!经常也会贴一些代码什么的,没有一个"语法高亮的"功能,总感觉不是很方便的!所以,昨天晚上,费了好多功夫,终于解决了这个问题! 现在就记录一下吧! 首先joomla默认的编辑器是tinymce貌似和博客园后台也用这个编辑器!淡然,他就是没有语法高亮

CKEditor 附插入代码的插件_网页编辑器

按照惯例,先来段废话:CKEditor是新一代的FCKeditor,是一个重新开发的版本.CKEditor是全球最优秀的网页在线文字编辑器之一,因其惊人的性能与可扩展性而广泛的被运用于各大网站. 从官网下载ckeditor,我下载的是ckeditor_3.0.2.CKEditor与原来的FCKeditor有太大的不同了,作为开发人员,在做自己的博客的时候总是需要贴代码的,只好给它先做一个插入代码的插件了.高亮代码用的是"SyntaxHighlighter". 1.在"cked