博客最新地址:http://1.techblog.sinaapp.com/?p=18
下面就GeSHi在Mediawiki下的安装方法做一下介绍:
下载最新版本的GeSHi(http://qbnz.com/highlighter),当前的最新版本是1.0.8.10。本系统使用的mediawiki版本为1.16。
解压,然后复制或剪切geshi目录到你的mediawiki的扩展目录(extensions)下(建议删除contrib和docs两个目录及其内容)。
在mediawiki的扩展目录(extensions)下新建文件GeSHiHighlight.php,文件内容如下:
<?php
require_once("geshi/geshi.php");
define("GESHI_PATH","extensions/geshi/geshi");
class SyntaxSettings {};
$wgSyntaxSettings = new SyntaxSettings;
$wgExtensionFunctions[] = "wfSyntaxExtension";
function wfSyntaxExtension() {
global $wgParser;
$langArray =geshi_list_languages(GESHI_PATH);
foreach ( $langArray as $lang ){
if ($lang =="" || $lang == "div") continue;
$wgParser->setHook( $lang,
create_function('$text', '$geshi = new GeSHi(trim($text,"/n/r"), "'."$lang". '", GESHI_PATH);
return$geshi->parse_code();'));
}
}
function geshi_list_languages ( $path = 'geshi/' )
{
$lang_list = array();
if ($handle =opendir($path)) {
while (false !==($file = readdir($handle))) {
if(is_dir($file)) continue;
if(".php" == substr($file, strrpos($file, "."),4))
{
$lang_list[]= substr($file, 0, strrpos($file, "."));
}
}
closedir($handle);
}
sort($lang_list);
return $lang_list;
}
?>
1. 打开mediawiki根目录下的LocalSettings.php,添加include(“extensions/GeSHiHighlight.php”);
放到定义$wgSitename($wgSitename = “xxx”;)的上边一行)。
wiki语法是:把代码放在<code></code>标签中
贴出效果图吧: