给fckeditor添加代码高亮功能

什么是UGeSHi?UGeSHi是一个连接器,它把FCKEditor与GeSHi(采用PHP编程语言写的代码高亮插件,目前它已能高亮100多种程序语言)紧密的结合在一起,您可以称为它为FCK插件,也可以称它为连接器(因为代码高亮的核心文件不是本人编写,本人只编写了其与FCKEditor整合的过程)。

UGeSHi的功能:高亮程序代码,使程序代码美观且易读。

为什么采用GeSHi作为核心文件?原因很简单,因为GeSHi高亮足够完美,而且支持高亮的程序语言也很完善。

UGeSHi能高亮多少种程序语言?粗略的说可以高亮100多种,具体细节看下表:

注:若您不想使用其中某种代码的高亮,您可以直接将geshi文件夹下的此语言文件删除,无需更改其它程序代码。

可以自定义高亮的颜色吗?可以,您只需要修改geshi文件下相应的语言文件中$language_data[‘STYLES’]变量即可!

UGeSHi对FCKEditor的兼容性怎么样?您可以像使用其它FCKEditor的插件那样使用UGeSHi,本人是在FCKEditor 2.6.3版本下开发的,其它版本未经测试,但相信兼容性一定非常不错。

UGeSHi对浏览器的兼容性怎么样?将其配置于FCKEditor 2.6.3版本中,本人已在IE5.0,IE6.0,IE7.0,Opera9.62,Firefox3.0.4,Chrome0.3.154.9下测试通过。

这是一张用UGeSHi高亮PHP代码的示意图。

下载使用UGeSHi:http://phpor.net/blog/attachment/ugeshi.zip
使用方法:

1. 将ugeshi文件夹存放于fckeditor/editor/plugins/目录下;
2. 编辑fckconfig.js文件,添加 FCKConfig.Plugins.Add(‘ugeshi’, "zh-cn’);
3. 设置FCKEditor工具栏,FCKConfig.ToolbarSets["Default"]值中添加:UGeSHi (注意大小写)

清空浏览器临时文件,开始体验吧…

实例:

测试
        

  1.     
    <?php

        

  2.     

  3.     
    error_reporting (1);

        

  4.     

  5.     
    header(‘Content-Type:text/plain; charset=utf-8’);

        

  6.     

  7.     
    if (!empty($_POST[‘UGC’]) && !empty($_POST[‘UGL’])) {

        

  8.     

  9.     
        include_once(dirname(__FILE__) . ‘/geshi.php’);

        

  10.     

  11.     
        if (get_magic_quotes_gpc()) $_POST[‘UGC’] = stripslashes($_POST[‘UGC’]);

        

  12.     

  13.     
        $_POST[‘UGC’] = stripslashes($_POST[‘UGC’]);

        

  14.     

  15.     
        $_POST[‘UGL’] = strtolower($_POST[‘UGL’]);

        

  16.     

  17.     
     

        

  18.     

  19.     
        $GeSHi = new GeSHi($_POST[‘UGC’], $_POST[‘UGL’]);

        

  20.     

  21.     
        //$GeSHi->enable_classes();

        

  22.     

  23.     
        $GeSHi->set_header_type(GESHI_HEADER_NONE);

        

  24.     

  25.     
        $GeSHi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);

        

  26.     

  27.     
        $GeSHi->enable_keyword_links(false);

        

  28.     

  29.     
        $GeSHi->set_overall_style();

        

  30.     

  31.     
        $GeSHi->set_tab_width(4);

        

  32.     

  33.     
        echo $GeSHi->parse_code();

        

  34.     

  35.     
    }

        

  36.     

  37.     
    ?>

        

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据