前段时间找了syntax-highlighter-with-add-button-in-editor插件,具体见简单方便的代码高亮插件推荐(编辑方便)。
可是鉴于这个插件是使用syntax-highlighter开发的,其中本身就有问题,当代码长度过长的时候呢,是不会自动换行的,只能在特定的字符的时候才会换行,所以代码一长,就超出来了。看了一下syntax-highlighter-with-add-button-in-editor作者的博客,也看到了他给的关键性代码,所以自己也拿过来借鉴借鉴。
由于我用的是wp-codebox,代码高亮这个东西,用的时间长了,就不能换了,因为很多代码高亮的插件的语法都是不一样的,如果换了的话,每一篇有代码的文章都要去改一下,这个实在是太烦了,所以我决定把wp-codebox改进,增强一下,让插入代码更加方便快捷。取名为wp-codebox++。
特点:
1.后台在写文章的下方加入插入代码的输入框
插入代码的时候每次都要手动写代码<pre lang="....." line="...">code...</pre>,麻烦死了。现在有了这款插件,只要在后台选择你插入的代码的语言,填写开始的行号和文件名(也可以不写),以及默认是否展开。关于wp-codebox的语法使用方法,请查看WP-codebox的使用注意事项。
后台的截图如下。
2.可视化和HTML模式可随意切换
当使用wp-codebox插入代码的时候,总是要先到HTML模式下,然后插入代码,如果再返回到可视化,pre标签中的有些属性就会消失,比如file、line、colla。这个问题一直是我想解决的,经过重重猜测和实验,终于知道是Tinymce编辑器的问题,它会自动清除不属于XHTML 1.0标准的HTML标签。对于我这个不懂的人来说,确实太难了。找了很多资料和方法,也给Tinymce的作者发了邮件,可是木有回。只得自己再找,弄了五天了,终于在第四天让我找了一个关键性的资料。WordPress编辑器 WordPress编辑器优化修改全攻略。
终于可以自由切换,不怕pre中的标签丢失了。
3.修改了工具栏的相关格式
wp-codebox插件本身可设置是否显示工具栏。显示工具栏的格式也进行了相关修改,使得更加好看。
4.自动转化<、>、&等这样的符号
在用wp-codebox时,从HTML转换到可视化时,会把例如<、>、&等这样的符号,转化成别的符号。用了leo108的JS方法,就可以过滤了,可视化完全没问题。可是当使用到wp-codebox的时候,出问题了,显示代码的时候,会显示成<,>这样的符号。所以只好改了geshi.php中的相关语句,再转化一次。这样就木有问题了。
注意事项
1.选择的语法,只有常见的。
如果想加入自己需要的语言,可修改插件文件夹中的main.php文件<select id="language">。。。。</select>中的option选项。自己定制。另外,为了减少插件的大小,可删除插件中geshi\geshi中的不需要的语言文件,以及插件根目录下的mo和po翻译语言文件。
2.代码字体问题
可能每个人的代码字体大小都需要和自己使用的主题匹配,但是wp-codebox有自己的CSS文件,就算你改主题的CSS也木有用,要改的话自己改插件中的CSS文件夹中的codebox.css文件吧。
3.pre中标签问题
当在wp-codebox选项中取消工具栏选项的话,不管colla是+还是-,都会直接显示,而不会再可以选择是否显示。不管file到底有没有填写,都不会提供文件下载了。View Source的功能也不会出现了。
当line="n"时,表示行号从0开始。如果line=""时,表示不显示行号。
尚未解决的问题
1.代码复制问题
当在有工具栏的时候,才会有复制代码的选项,而且只能在IE下复制。这点还没想好怎么解决。
2.代码换行问题
当代码长度过长的时候,横向会出现滚动条,自己拉动,如果设置CSS,使得自动换行,可是行号就不对了,这个问题也没有解决。
3.插件发布问题
我不知道这个能不能单独发出来,上交到wordpress插件官网,取名为wp-codebox++,算不算侵权呢?不管了,先放出来,给有需要的人用一下吧,看看有什么问题嘛。欢迎向我反馈,联系方式关于Laycher。
插件下载
DBank网盘:http://dl.dbank.com/c0u4pgn3ro
本站下载:wp-codebox++
插件安装
与一般的插件方法一样,上传到wordpress的plugins文件夹中,在插件选项中开启即可。
>> 若为原创,转载请注明: 转载自Laycher's Blog
>> 本文链接地址: WP-Codebox增强版,插入代码更方便
>> 订阅本站: http://feed.feedsky.com/laycher
我也在用codebox,相比其它插件,确实稍麻烦了点,不过习惯了就没什么太大的问题。
排版是个问题啊。。
好雨知时节,看完这篇外面居然下起了大雨
最近也在寻觅好用的代码高亮插件,先收藏一个!
感谢分享,先测试了,刚碰到这个问题。。
无奈西啊,作者好像不更新了
唉,自动换行搞的奔溃了
自动换行这个问题还是没有解决的。。。。其实作者是根据geshi改造的,有兴趣的,可以去http://qbnz.com/highlighter/ 看一下源代码。
能不能给个不是网盘的下载地址呀,还要注册,都好麻烦的。。。
好的,我马上弄个备用地址。
原来的wp-code box 我只发现了一个HTML标签关闭错误, 那就是, 如果你写如下代码:
<pre lang=”latex”>
\int
</pre>
这时int的</a>标签和</span>标签的顺序反了. 不能通过W3C验证.
找了很久, 一直希望能改过来, 但是他的代码我看不懂是在哪里添加的这个style, 希望你有空能看看.
你好,我没弄懂您的意思,可以的话,发邮件和我详谈可以吗?i#laycher.com
我的意思是, 原来的wp-bode box里面有个小错误(当然, 已经听说错误还不少, 但是我暂且发现如下一个, 希望能帮忙解决, 主要是由’int’标签引起的HTML不能通过W3C验证), 代码测试如下:
首先确定你测试的网站启用了wp-code box;
新建一个帖子;
到W3C测试能否通过HTML验证;
如果能, 再编辑新建的帖子, 里面输入内容如下:
<pre lang=”latex”>
\int
</pre>
这时再去测试, 发现不能通过; 且提示有个</a></span>的顺序错了.
我想自己修改过来, 但是没发现他源代码里面相应的位置.
希望你能帮忙看看.
不知道您现在还有对这个插件修改有作更新么?
这个,确实没有再做修改,因为不知道要改什么了,请赐教。
就是行号的问题了,这个真纠结,可以弄一下么?
另外,<p style=”background:#E8EFD1;display:block;margin:6px 0;padding:6px 10px”>
<?php
比如这个,这个是在源码模式下编辑的,为什么还会有<p 这样的符号呢?不是说已经转换了么?
我不是很懂诶,这样吧,我发邮件跟你交流吧
@Laycher 给你发信,不知道收到没有呢?
收到了,我想你没弄明白我修改了什么。原版wp-codebox只能在源码的编辑模式下插入代码,如果换到可视化之后,再换回源码编辑,那么<>这样的符号就丢失了。我修改了之后呢,在可视化编辑的模式下,你插入代码是什么样,就显示什么样,如果代码中有<>这样的符号,显示的时候还是<>。
博主真心牛掰,这个很实用。赞一个!
改得很好,方便多了
那个insert按钮按了没反应啊。。。。具体怎么用的。。?
insert按了之后会在上方的编辑框中显示出你插入后的代码啊。怎么会没用呢。
确实不行。。难道是网站太慢了?
能够QQ联系吗?。。
提交两个bug,Output Styles不能修改,还有一个行号有问题(弄得我都不显示行号了、。。。。)