SyntaxHighlighter配合CKEditor插件輕松打造代碼語法著色
上網(wǎng)搜索了一下相關(guān)的文章不少,大同小異,本人一直使用的是CKeditor的文字編輯器,所以償試使用網(wǎng)上很多網(wǎng)友介紹的SyntaxHighlighter配合CKEditor插件的方式實現(xiàn)??赡苁且驗镾yntaxHighlighter和CKEditor版本不同,過程中遇到了一些問題,解決的同時也根據(jù)個人理解做部分調(diào)整,所以本文所描述的方法僅供參考。
一、SyntaxHighlighter簡介
SyntaxHighlighter(原名:dp.SyntaxHighlighter)是一套在瀏覽器上對各種代碼進行語法著色的JavaScript庫。
下載網(wǎng)站:http://alexgorbatchev.com/SyntaxHighlighter/
腳本之家下載://www.dbjr.com.cn/codes/15916.html
本文使用的版本是3.0.83版,下載后只需要syntaxhighlighter文件夾下的“scripts”和“styles”文件夾內(nèi)的文件,在代碼語法著色高亮顯示的頁面引用“styles/shCore.css”樣式文件,“scripts/shCore.js”JS文件,因為每一種代碼語言都要引用各自的JS文件,為了降低HTTP請求,把所有代碼語言的JS文件內(nèi)容都放到一個“scripts/shBrushSeaYee.js”JS文件里,把所代碼寫成一行,優(yōu)化一下。
例如:
<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是一個專門使用在網(wǎng)頁上屬于開放源代碼的所見即所得文字編輯器。它志于輕量化,不需要太復(fù)雜的安裝步驟即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的編程語言相結(jié)合。它原名FCKEditor,在2009年發(fā)布更新到3.0,并改名為CKEditor。原來叫FCK,是因為最初的開發(fā)者叫Frederico Calderia Knabben;現(xiàn)在叫CK,意指"Content and Knowledge"。據(jù)官方的解釋,CKEditor是對FCKEditor的代碼的完全重寫,而且此項工作從2007年就開始了,更新包括:新的用戶界面,一個支持Plug-in的Javascript API,并提供對視覺障礙者的使用支持。
下載網(wǎng)站:http://ckeditor.com/
本文使用的版本是3.5.3版,安裝配置都比較簡單,本文不再贅述。
三、CKEditor代碼語法著色高亮顯示的插件開發(fā)
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”必須與文件夾名稱相同且區(qū)分大小寫字母,因為在Linux系統(tǒng)的Web服務(wù)器中,路徑是區(qū)分大小寫字母的。
2、"insertcode"目錄下放入一個"insertcode.gif"16*16的圖片,可自己做或上網(wǎng)找。
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的配置文件,添加如下代碼:
注:代碼中“insertcode”也必須與文件夾名稱相同,區(qū)分大小寫字母。
要在CKEditor工具欄添加按鈕就在此配置文件中添加上“,Insertcode”,依然要注意區(qū)分大小寫字母。至此就大功造成了。
- SyntaxHighlighter 去掉右側(cè)滾動條的方法
- 防止SyntaxHighlighter.js的代碼高亮?xí)r閃一下的解決方法
- SyntaxHighlighter自動識別并加載腳本語言
- z-blog SyntaxHighlighter 長代碼無法換行解決辦法(基于jquery)
- SyntaxHighlighter 3.0.83使用筆記
- ckeditor syntaxhighlighter代碼高亮插件配置分享
- CKEditor中加入syntaxhighlighter代碼高亮插件
- z-blog SyntaxHighlighter 長代碼無法換行解決辦法(jquery)
- 解決SyntaxHighlighter 代碼高亮不換行問題的解決方法
- FCKeditor + SyntaxHighlighter 讓代碼高亮著色插件
- 代碼著色之SyntaxHighlighter項目(最流行的代碼高亮)
- syntaxhighlighter 去掉右上角問號圖標(biāo)的三種方法
- 為SyntaxHighlighter添加新語言的方法
- SyntaxHighlighter語法高亮插件使用說明
- ckeditor syntaxhighlighter代碼高亮插件,完美修復(fù)
- coolcode轉(zhuǎn)SyntaxHighlighter與Mysql正則表達式實現(xiàn)分析
- FCKeditor 和 SyntaxHighlighter 代碼高亮插件的整合
- SyntaxHighlighter 語法高亮插件的使用教程
- 使用SyntaxHighlighter實現(xiàn)HTML高亮顯示代碼的方法
- FCKEditor SyntaxHighlighter整合實現(xiàn)代碼高亮顯示
- SyntaxHighlighter代碼加色使用方法
- syntaxhighlighter 使用方法
- 關(guān)于實現(xiàn)代碼語法標(biāo)亮 dp.SyntaxHighlighter
- SyntaxHighlighter?Autoloader(自動加載)最優(yōu)方式
相關(guān)文章
asp.net CKEditor和CKFinder的應(yīng)用
CKEditor和CKFinder在ASP.NET中的應(yīng)用,需要的朋友可以參考下。2010-01-01CKeditor與syntaxhighlight打造joomla代碼高亮
最近在用csdn和cnblogs發(fā)帖子和寫隨筆的時候,發(fā)現(xiàn)了好多的IT的網(wǎng)站或者和代碼有關(guān)系的一些論壇,博客之類,他們都有一個非常好的語法高亮!很強大!2010-07-07FCK判斷內(nèi)容是否為空(如果只是去空格,那么這種方式是錯誤的)
一般來說,像input里面的值都可以通過將內(nèi)容去空格判斷是否為空,但是FCK沒那么簡單,因為當(dāng)你多打幾個空格或者多打一些回車,它會自動地生成一些<p>標(biāo)簽,如果再用原先去空格判斷的方法,顯然是不可取的。2010-12-12PHP中CKEditor和CKFinder配置問題小結(jié)
PHP中CKEditor和CKFinder配置問題小結(jié),使用CKEditor和CKFinder編輯器的朋友可以參考下2012-03-03FCKeditor2.3 For PHP 詳細整理的使用參考
FCKeditor2.3 For PHP 詳細整理的使用參考...2007-11-11Fckeditor XML Request error:internal server error (500) 解決方法
本文章收藏了關(guān)于FCKEditor XML Request Error:Internal Server Error(500)各種問題的解決辦法2012-09-09百度ueditor組件上傳圖片后如何設(shè)置img里的alt屬性
百度ueditor組件,使用上傳圖片后,設(shè)置了一個alt屬性,其值是上傳圖片時的本地路徑,如果想更改的話可以參考下面的解決方法2014-09-09