使用prettify为编辑器xhEditor添加代码(code)高亮显示

 一、下载插件:

xheditor:可到http://xheditor.com/下载

prettify:可到http://code.google.com/p/google-code-prettify/下载

xheditor是一款小巧的html编辑器,采用的是Jquery技术,相信很多人都用过。

prettify是Google开发的一款轻量级的代码高亮显示插件,这款插件比起常用的SyntaxHighlighter来,要小巧得多。它的原理就是将代码放到一个pre块里面,然后对pre块里面的内容进行高亮显示。

二、加载插件。

如果编辑器和显示内容是在同一个网页,那么需要加载js文件和css文件。

   
   
  1. <script type="text/javascript" src="jquery/jquery-1.4.2.min.js"></script> 
  2. <script type="text/javascript" src="xheditor/xheditor-1.1.6-zh-cn.min.js"></script> 
  3. <script type="text/javascript" src="xheditor/prettify/prettify.js"></script> 
  4. <link href="xheditor/prettify/prettify.css" rel="stylesheet" type="text/css" /> 

前两行用于编辑器,后两行用于显示高亮代码。如果发表文章和显示文章分属两个页面,可分开加载。

三、修改编辑器

把xheditor下载解压后,可放到网站根目录文件夹xheditor里面,prettify下载解压后可放在文件夹xheditor里面,注意路径问题。

1、制作一个图标。

可用制图工具做一个gif的小图标,放到prettify文件夹下面。

然后写一个CSS引入:

   
   
  1. .btnCode  
  2.      { 
  3.     background:transparent url(xheditor/prettify/code.gif) no-repeat 16px 16px
  4.     background-position:2px 2px
  5.     } 

2、为多行文本框加载xheditor编辑器。

在有多行文本框的页面,加上一段js代码:

   
   
  1. <script type="text/javascript">  
  2. var editor; 
  3. $(pageInit); 
  4. function pageInit() 
  5.     var allPlugin={ 
  6.          
  7.         Code:{c:'btnCode',t:'插入代码',h:1,e:function(){ 
  8.             var _this=this
  9.             var htmlCode='<div><select id="xheCodeType"><option value="html">HTML/XML</option><option value="js">Javascript</option><option value="css">CSS</option><option value="php">PHP</option><option value="java">Java</option><option value="py">Python</option><option value="pl">Perl</option><option value="rb">Ruby</option><option value="cs">C#</option><option value="c">C++/C</option><option value="vb">VB/ASP</option><option value="">其它</option></select></div><div><textarea id="xheCodeValue" wrap="soft" spellcheck="false" style="width:300px;height:100px;" /></div><div style="text-align:right;"><input type="button" id="xheSave" value="确定" /></div>';     
  10.             var jCode=$(htmlCode),jType=$('#xheCodeType',jCode),jValue=$('#xheCodeValue',jCode),jSave=$('#xheSave',jCode); 
  11.             jSave.click(function(){ 
  12.                 _this.loadBookmark(); 
  13.                 _this.pasteHTML('<pre class="prettyprint lang-'+jType.val()+'">'+_this.domEncode(jValue.val())+'</pre>'); 
  14.                 _this.hidePanel(); 
  15.                 return false;     
  16.             }); 
  17.             _this.showDialog(jCode); 
  18.         }} 
  19.     }; 
  20.     editor=$('#txtTopic').xheditor({plugins:allPlugin,tools:'Fontface,FontSize,Bold,Italic,Underline,Removeformat,Source,Code'}); 
  21. </script> 

其中tools:'Fontface,FontSize,Bold,Italic,Underline,Removeformat,Source,Code'这个地方用于显示的图标工具,可随意设定。txtTopic为多行文本框的id.

3、显示代码

在显示页的body标记里面加上οnlοad='prettyPrint()'

   
   
  1. <body onload="prettyPrint()"> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值