当前位置:首页 > php > 正文

在mediawiki中使用语法高亮syntaxHighlight的方法和坑

最近项目需要使用mediawiki,用的是1.21版本,当时选择时候的最新版本;
进行了较大程度的加工和页面模版设计,前后台分离,其中就涉及到代码高亮;
怎么方便在mediawiki中实现代码高亮呢?

(1)去https://github.com/seongjaelee/SyntaxHighlighter/zipball/master下载相应的软件包;下载后,需要先修改名字,因为文件夹名称都带有版本,需要将最外面的包修改为SyntaxHighlighter,然后第二层文件夹名称修改为syntaxhighlighter;
(2)默认引入的js是在scripts文件夹中的shCore.js,可以在syntaxhighlighter.php中修改需要引入的css;
(3)在LocalSettings.php中引入该扩展:

(4)针对不同的语言:

2 条评论

  1. 板凳2013-10-31 下午3:04
    admin

    在使用的时候,测试用FIREFOX最新版,经常会出现一个情况,就是缓存的问题,目前没有明显的问题,可能是和浏览器有关;比如修改
    function addHeadItems( Parser &$parser, &$text ) {
    if( $parser->extSyntaxHighlighter !== $this ) {
    return $parser->extSyntaxHighlighter->addHeadItems( $parser, $text );
    }
    if( count($this->mSyntaxList) > 0 ) {
    global $wgScriptPath;
    $directory = $wgScriptPath.’/extensions/SyntaxHighlighter’;

    $scriptTxt = “\n\r”;
    $scriptTxt = $scriptTxt.’‘.”\n\r”;
    foreach( $this->mSyntaxList as $key => $value ) {
    $scriptTxt = $scriptTxt.’‘.”\n\r”;
    }
    $scriptTxt = $scriptTxt.’‘.”\n\r”;
    $scriptTxt = $scriptTxt.’‘.”\n\r”;
    // echo ‘s=’ . $scriptTxt;exit;
    $parser->GetOutput()->addHeadItem($scriptTxt);
    }

    return true;
    },

    好像生效时间需要很长,清空浏览器缓存都无效,于是2个方法:
    (1)后台编辑wiki内容,比如清空后保存,刷新前端页面;然后页面会看到修改后的页面,如果原来的缓存依然存在,进入(2)
    (2)换个浏览器查看即可;比如切换到chrome

  2. 沙发2014-06-06 下午1:14
    ช่างกุญแจ

    Howdy! I could have sworn I’ve been to this blog before but
    after browsing through some of the post I realized it’s new to me.
    Anyhow, I’m definitely happy I found it and I’ll be book-marking and
    checking back frequently!

发表评论

您必须 [ 登录 ] 才能发表留言!