zoukankan      html  css  js  c++  java
  • mediawiki安装实现代码高亮的插件GeSHiHighLight

    1.下载新版本的GeSHi(http://qbnz.com/highlighter)

    2.解压,复制geshi目录到mediawiki的扩展目录(extensions)下(建议删除contrib和docs两个目录及内容)

    3.在mediawiki的扩展目录(ectensions)下,新建GeSHiHighlight.php,加入文件内容如下:

      

    <?php
    # GeSHiHighlight.php
    # 
    # By: E. Rogan Creswick (aka: Largos)
    # creswick@gmail.com
    # wiki.ciscavate.org
    #
    # License: GeSHi Highlight is released under the Gnu Public License (GPL), and comes with no warranties.
    # The text of the GPL can be found here: http://www.gnu.org/licenses/gpl.html
    # Loosely based on SyntaxHighlight.php by Coffman, (www.wickle.com)
    
    # you want to change the below two lines
    require_once("geshi/geshi.php"); // i asume geshi.php is in the same directory as GeSHiHighlight.php (that is 'extensions' dir)
    
    define("GESHI_PATH","extensions/geshi/geshi");// definition where are stored geshi language parsing files
    
    
    # ok, end of editing :)
    
    
    class SyntaxSettings {};
                     
    $wgSyntaxSettings = new SyntaxSettings; 
    $wgExtensionFunctions[] = "wfSyntaxExtension"; 
                                         
    function wfSyntaxExtension() { 
        global $wgParser;
        $langArray = geshi_list_languages(GESHI_PATH);
    # $langArray = array("actionscript","ada","apache","asm","asp","bash",
    # "caddcl","cadlisp","c","cpp","css","delphi",
    # "html4strict","java","javascript","lisp", "lua",
    # "nsis","oobas","pascal","perl","php-brief","php",
    # "python","qbasic","sql","vb","visualfoxpro","xml");
        foreach ( $langArray as $lang ){
            if ($lang == "" || $lang == "div") continue; 
            $wgParser->setHook( $lang, 
            create_function( '$text', '$geshi = new GeSHi(trim($text,"
    
    "), "' ."$lang". '", GESHI_PATH);
            return $geshi->parse_code();')); 
        } 
    } 
    
    /**
    * function: geshi_list_languages
    * -------------------------
    * List supported languages by reading the files in the geshi/geshi subdirectory
    * (added by JeffK -- Jeff, any more contact info?) -- I haven't tested the code is is, will do that shortly. -Rogan
    *
    */
    function geshi_list_languages ( $path = 'geshi/' )
    {
        $lang_list = array();
        if ($handle = opendir($path)) {
            while (false !== ($file = readdir($handle))) {    // Loop over the directory. 
                if(is_dir($file)) continue;                    // Drop anything that is a directory, cause we want files only
                if( ".php" == substr($file, strrpos($file, "."),4)) // process only .php files
                {
                $lang_list[]= substr($file, 0, strrpos($file, "."));
                }
            }
    
            closedir($handle);
        }
        sort($lang_list); //sort the output, i like ordered lists in Wiki Version page :)
        return $lang_list;
    } 
    ?>

    4.在mediawiki的根目录下的LocalSettings.php文件中加入

    include("extensions/GeSHiHighlight.php");

    该内容加在变量$wgSitename之前

  • 相关阅读:
    java1234初学maven
    解决maven创建web项目卡死在generator插件(转)
    maven下载速度慢的解决方法(转)
    git分支
    git基础
    oracle分析函数与over()(转)
    Oracle开窗函数 over()(转)
    Oracle计算时间函数(对时间的加减numtodsinterval、numtoyminterval) (转)
    selenium使用中遇到的问题
    selenium运行火狐报错FirefoxDriver : Unable to connect to host 127.0.0.1 on port 7055
  • 原文地址:https://www.cnblogs.com/lwmp/p/6423777.html
Copyright © 2011-2022 走看看