国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:54:02
字體:
來源:轉載
供稿:網友
作為程序員在寫博客文章的時候,經常要插入些代碼片斷,很多博客系統都提供代碼語法著色高亮顯示的功能或插件,讓代碼顯示更直接明了
 
上網搜索了一下相關的文章不少,大同小異,本人一直使用的是CKeditor的文字編輯器,所以償試使用網上很多網友介紹的SyntaxHighlighter配合CKEditor插件的方式實現。可能是因為SyntaxHighlighter和CKEditor版本不同,過程中遇到了一些問題,解決的同時也根據個人理解做部分調整,所以本文所描述的方法僅供參考。 

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

一、SyntaxHighlighter簡介 

SyntaxHighlighter(原名:dp.SyntaxHighlighter)是一套在瀏覽器上對各種代碼進行語法著色的獨立JavaScript庫。 

下載網站:http://alexgorbatchev.com/SyntaxHighlighter/ 

本文使用的版本是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”,依然要注意區分大小寫字母。至此就大功造成了。


注:相關教程知識閱讀請移步到編輯器頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若尔盖县| 简阳市| 图片| 沅江市| 盈江县| 平凉市| 桐庐县| 中卫市| 奉节县| 若羌县| 广饶县| 西林县| 保山市| 彭州市| 梁平县| 资中县| 永修县| 呼伦贝尔市| 攀枝花市| 色达县| 桂阳县| 金山区| 德江县| 邯郸县| 博罗县| 绍兴市| 清镇市| 博野县| 赣州市| 永善县| 贡觉县| 宁城县| 瑞昌市| 北宁市| 祁门县| 安达市| 东乌珠穆沁旗| 鄢陵县| 山东省| 通化市| 屯昌县|