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>';
}
暂无评论