威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 设计 > 正文

WordPress代码高亮插件SyntaxHighlighter Evolved的行号问题

WordPress代码高亮插件SyntaxHighlighter Evolved在手动复制局部代码的时候,会将行号也复制进去,这样就影响了手动复制代码的效果,于是威言威语就想到了一个比较投机的方法来解决这一问题。

WordPress功能强大这点是毋庸置疑的,但是有一点不好的地方就是在文章中发布代码。

因为经常在文章中写些代码,如何能够很好的展示代码我想是很多人都需要的。纵观WordPress的代码插件,基本我都试用过了,说实话,没有满意的。

要么是代码展示的样式不好,要么加载一些JS库来实现高亮而使得速度很慢很慢。我想找个简单的能够很好的展示代码就行了,至于看上去有没有高亮都无所谓了,希望大家能推荐推荐。

暂时我用的代码插件是SyntaxHighlighter Evolved,因为从PJBlog转过来后,一些文章中的发布的代码就变乱了,转过来的时候基本都是【code]【/code]。而这个插件正好也能使用的这样的标签来显示代码,而且基本比较满意,虽然加载还是慢了一些。

当然SyntaxHighlighter Evolved除了速度慢一点外,还有一点,就是手动复制代码的时候会连行号也一起复制走了,这点很讨厌。

最新版的SyntaxHighlighter Evolved可以使用3.X版的Syntax Highlighter,但是这个版本更加糟糕,虽然行号不被复制走了。代码不能自动换行,而是在下面出了滚动条;而且也没有了使用2.X版的Syntax Highlighter的小工具条,个人感觉样式也没有之前的好看。

于是我就在两者之间徘徊,希望能找到一个完美的解决方案,如果在2.X下手动复制的时候不复制行号。这样应该说就完美了很多,因为有时候我只要复制其中的一段代码而不是全部,带行号确实比较讨厌。

想的方法就是怎么样在复制的时候禁止复制行号,这是个比较无奈的问题,基本都是全文不让复制,而这种局部性的没有发现很好的,我很纠结。

他这个代码展示是一行一行的表格组合而成,于是想到一个比较投机的方法,用文本框把那些数字套起来了,然后文本框设置成只读无效,这样选择时其实只选到文本框,而选不到里面的数字,从而解决复制的时候把行号也复制进去的情况。

先看一个小小例子。


1、我是个正常文本框
<input type="text" value="01" />

2、我是个只读文本框
<input readonly="readonly" type="text" value="01" />

3、我是个无效文本框
<input disabled="disabled" type="text" value="01" />

这样我们就发现,使用正常文本框,上面的01可以修改删除;使用只读文本框,上面的01可以复制但不可以更改;使用无效文本框,上面的01是无法复制的,这样第三种就能很好的解决我们的问题。

稍稍改动了下插件其中的JS代码,就实现了我想要的效果。

其中效果最好是FireFox,手动复制的时候完全碰不到行号。而IE,Chrom,Opera,Safari等浏览器则在复制的时候行号也像是被复制的样子,当然是粘贴的是不会粘贴出行号来的,但是这样容易有误解,以为将行号也复制进去了,不过这个就真的改不起来了。

我还在期待完美的代码插件出现。

您可能还会对这些文章感兴趣!

WordPress代码高亮插件SyntaxHighlighter Evolved的行号问题:目前有 43 条评论

  1. 24楼
    精剪Google Chrome 28.0.1496.0 Windows XP

    怎样才能运行代码?也就是在添加一个代码框,在框的下面有运行按钮。

    2013-06-26 19:31 回复
  2. 23楼
    Google Chrome 21.0.1180.89 Windows 7

    试过好几个多不理想就撤掉了! :oops:

    2013-04-11 09:40 回复
  3. 22楼
    小波傲游浏览器 3.3.7.1000 Windows XP

    苦于找代码插件,之前按了好几个都不好用

    2012-04-22 23:32 回复
  4. 21楼

    同样在找完美的代码高亮显示插件。

    2012-03-26 21:38 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

question razz sad smile redface biggrin shock confused cool lol mad rolleyes wink cry