欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SyntaxHighlighter配合CKEditor插件輕松打造代碼語法著色

 更新時間:2012年09月25日 21:58:22   投稿:mdxy-dxy  
作為程序員在寫博客文章的時候,經(jīng)常要些代碼片斷,很多博客系統(tǒng)都提供代碼語法著色高亮顯示的功能或插件,讓代碼顯示更直接明了

上網(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)化一下。

例如:

復(fù)制代碼 代碼如下:

<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",輸入以下代碼:
復(fù)制代碼 代碼如下:

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",輸入如下代碼:
復(fù)制代碼 代碼如下:

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的配置文件,添加如下代碼:

復(fù)制代碼 代碼如下:
config.extraPlugins = 'insertcode';


注:代碼中“insertcode”也必須與文件夾名稱相同,區(qū)分大小寫字母。

要在CKEditor工具欄添加按鈕就在此配置文件中添加上“,Insertcode”,依然要注意區(qū)分大小寫字母。至此就大功造成了。

相關(guān)文章

最新評論