我用的代码高亮插件都是geshi,这个插件比较好,采用PEAR的formatter和coolcode相比,不用专门的标签,支持wp的原生态<code></code>格式的标签,所以一直以来都没有替换他。
但是这个插件有个缺点,那就是格式转换是在php端进行的,输入的代码非常的臃肿,并且也不方便复制,除非专门写javascript采用innerText来获取。所以很早就想对这个高亮重新处理。那么今天,我决定将我新处理的方式写成wp插件进行发布,这个插件的特点是对服务器的数据不做任何处理,仅仅在页面用javascript优化。所以在html源代码中甚至可以看到你的code原样。
插件下载地址:code-highlighter
特别鸣谢:http://code.google.com/p/samaxesjs/
本来是可以直接集成在模板中,但是考虑到某些朋友不愿意修改模板,所以弄成插件进行发布了!js的代码已经gzip压缩,文件大小由原来的42k降低到12k,希望不会影响到页面的载入速度。
补充,如果发现代码的半角标点被替换成全角标点,那么就是wordpress的formatting在作怪,修改wp-includes/formatting.php,把下面这一行给它注释掉:
// regular expressions //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
对了,顺祝大家中秋节愉快!
补充:测试样式表bug
补充(2008-09-16 11:30),看来仅仅特别感谢不够,有必要补充下面的内容:
此插件并非原创,它基于:
- http://code.google.com/p/samaxesjs/ or http://code.google.com/p/syntaxhighlighter/(看到留言,原来这个js高亮度代码还有另外一个主人。这两者之间什么关系啊,我彻底迷惑了,看样子好像是后者原创,但是我这个插件的JS来自前一个链接,高亮的JS版权,让他们自己去争吵吧,总之,感谢高亮JS的作者)
- php;
- wordpress;
- html;
- javascript;
另外,插件的原创和插件使用到脚本的原创没有必然关系吧,就如同1bloggerchache一样,人家使用了我的代码,但是他确实是原创。无所谓,是不是原创丝毫不影响我,你说不是便不是,我做的仅仅是让高亮的代码以插件的方式嵌入到WP的风格中,使之使用起来更加简单,然后在这个blog上分享而已。
真是搞笑,还分享过毛线啊!
标签:code-highlighter, plugin
这个方式好,每个人一般也就用几种代码,把自己用的跳出来然后整合到一下,再压缩输出js估计只有几k,还是觉得coolcode的css样式最好看,要是这个css也能整成那样就超级好了
是不是哪里没有处理好,http://www.storyday.com/html/y2007/1113_round-corner-div.html你的这个页面在我的ie6下和FF下显示不正常
代码中的css被解释生效了,晕菜!
coolcode的js太庞大,很早就放弃了
你终于又出插件了,正好我缺个代码高亮的,拿走了。
欢迎报告bug!其实这个插件也超简单!
来一个,想问问这个插件能不能做个判断,比如我的content里面有code标签的时候它才hook到header里面去?
刚开始我也这样想过,确实在single页面可以这样判断,减少js的载入,但是在category等页面就没有办法判断了。因此最后只有决定把css压缩到12k。
我的意思是说这个css太难看,能不能还把SyntaxHighlighter.css换成coolcode的css样式,就像你改geshi的css那样,这样也可以和你以前的风格一样,我太菜,换了一下ie下显示有点不正常,期望能做一个coolcode风格版的
soga,等我后面慢慢来美化!
半角标点被替换成全角标点,可以用这个插件http://sparanoid.com/tag/quotmarks-replacer/
暂时还不需要,需要的时候来你这里来下
。。。这个插件是别人的作品吧,不要写得好像是自己原创的一样
dp.SyntaxHighlighter
Version: 1.5.1
http://www.dreamprojections.com/syntaxhighlighter
©2004-2007 Alex Gorbatchev.
我有说是原创么?请仔细看内容,明明告诉大家了,这个是基于JS的(js来源已经在本文中特别鸣谢的地方写清楚了地址),只是通过插件的模式集成到wptheme中了,搞得好像我把别人的代码修改成自己的,然后发布一样(我的cos-html-cache曾被人这样)。js代码为没有做任何修改,包括注释中的作者信息,这个插件仅仅是方便使用WP的朋友使用这个syntaxhighlighter而已
firefox和opera下没有copy to clipboardprint选项,而且在firefox下复制的时候会连行号一起复制下来,或者是行号变#号,ie好像都正常
js本身的弱点,利用flash应该是很容易完成这个功能的,可惜这个js代码不是我写的,呵呵