typecho的高亮插件

        原来在pjblog自己做了一个高亮插件,发来一些代码,转到typecho后这些代码的处理很麻烦,换新的代码插件还是  直接修改文章内容都很麻烦,相比较而言,修改原文内容更麻烦。所以最好做一个与我原来在pj下使用的插件相兼容的插件就行了,方便又简单。

          但是typecho的插件原理搞不懂,只有下了一个Simple Code 和XHighlighter插件来研究、修改。原来pj下用的是SyntaxHighlighter,te下可以采用geshi和SyntaxHighlighter两种方式进行代码着色。决定用SyntaxHighlighter,因为是javascript代码的,而且代码显示好看方便。功能已实现,现在在想怎么把它做得更好更方便,现在还手工需要在header.php文件中添加内容,每换模板都需要添加一次,现在正在研究怎么动态插入header内容。

代码显示实例

public static function render($value, $widget, $lastResult)

    {

        $value = empty($lastResult) ? $value : $lastResult;

        if ($widget instanceof Widget_Archive) {

            $value['text'] = preg_replace_callback("/\[code=(.[a-zA-Z]*)([0-9]*)\](.*?)\[\/code\]/is", array('FHilight_Plugin', 'parseCallback'), $value['text']);

        }

 

        return $value;      

    }

 public static function parseCallback($matches)

    {

    $temp = trim($matches[1]);

if(!empty($temp))

{eval('$' . str_replace(' ', ';$', $temp) . ';');}

else

{$lang = 'Php';}

return '<pre class="brush:'.$matches[1].' first-line: '.$matches[2].'">'.$matches[3].'</pre>';

}

 

Published by 阿飞 on
Tags: typecho, 插件

暂无评论