2009五月22
codecolorer 关键字链接在新窗口打开
codecolorer是我很喜欢的一款wordpress代码高亮的插件,也就是我现在正在用的。
其展示上有多种样式支持,并且其支持高亮的代码也是很多的。
而且我喜欢它还有另一个原因,那就是它可以把一些系统函数(如PHP的echo,var_dump)之类直接链接到编程语言的官方文档去。
所以,想要对查看你代码的人也是有很大帮助的,毕竟,授人以鱼不如授人以渔嘛。
不过,其默认是在本窗口打开的链接,这就有点不爽了,于是改代码,使其在新窗口打开。
其实,代码不难改,大家也都知道,想要一个超链接在新窗口打开,只要加上如下参数即可:
<a href='http://www.xiaoxiaozi.com/' target='_blank'>小小子</a>
只要加上这个target=’_blank’那么链接就是在新窗口打开的了。
不过,他这个代码可有点大,找起来不是那么容易的。不过历尽万难,我还是找到了更改的地方,呵呵(有点吹牛的感觉)。。
要更改的文件为wordpress\wp-content\plugins\codecolorer\lib\geshi.php
在其3484行左右(真长啊)
// Replace <|UR1| with <a href= for urls also simaopig
if (isset($this->link_styles[GESHI_LINK])) {
if ($this->use_classes) {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' target=\'_blank\' href=', $stuff_to_parse);
} else {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" target=\'_blank\' href=', $stuff_to_parse);
}
} else {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' target=\'_blank\' href=', $stuff_to_parse);
}
if (isset($this->link_styles[GESHI_LINK])) {
if ($this->use_classes) {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' target=\'_blank\' href=', $stuff_to_parse);
} else {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" target=\'_blank\' href=', $stuff_to_parse);
}
} else {
$stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' target=\'_blank\' href=', $stuff_to_parse);
}
呵,因为代码太长,而且逻辑过多,所以没有一点点看其实现方式,也没有看其if的条件到底是什么。
反正我为每个条件分支都加上了这个target=’_blank’于是,现在你们看到的,关键字的链接在新窗口打开了。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/05/22/572/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
哈哈,刚好赶上你发新文章,抢个沙发。
[回复]
@LAONB
呃。。你的速度还真是快。呵呵。
[回复]
这代码看着辛苦,一丁点大,还出现横向滚动条,看一行,拉两次
[回复]
IE更痛苦,纵向同样有滚动条
[回复]
simaopig 回复:
五月 22nd, 2009 at 9:17 下午
确实IE是有这个问题,你上次提供给我的方法我也没改。因为我这周才要换1.4到时肯定会加上的。稍等。呵呵。
[回复]
能教我下这个具体怎么设置的吗?我装了这个插件但是代码没有高亮啊
[回复]
@Eagle
呃,在后台就可以设置了。
而只要在HTML编辑的时候加上指定的标签[cc][/cc]就可以了。
[回复]