在Z-Blog上使用SyntaxHighlighter1.5(代码高亮,不复制行号)修改方法

这里我是使用了SyntaxHighlighter1.51版本来修改的,到目前为止已经有SyntaxHighlighter2.0版本了。可以到这里下载:http://code.google.com/p/syntaxhighlighter/
至于选择1.5版本修改的其中一个原因是1.5版本前面的行号是用CSS实现的,直接复制代码时不会把前面的行号复制,这是我选择它的一个重要原因。


有插件了,看看这里【原创】Z-blog插件-SyntaxHighlighter for Z-blog代码高亮
这里我是使用了SyntaxHighlighter1.51版本来修改的,到目前为止已经有SyntaxHighlighter2.0版本了。可以到这里下载:http://code.google.com/p/syntaxhighlighter/
至于选择1.5版本修改的其中一个原因是1.5版本前面的行号是用CSS实现的,直接复制代码时不会把前面的行号复制,这是我选择它的一个重要原因。由于flash10不允许直接操作剪贴板,必须由用户激活falsh才能使用“复制按钮”,故1.5版使用复制的方法已经失效了。我参考了javaeye.com的修改方法,直接用一个flash为复制按钮(当然还有更好的方法,例如SyntaxHighlighter2.0已经实现了,还有我前面提到的Zero Clipboard项目
我修改的这个版本可以在Z-Blog很好的使用~在下面我会打包发上来~
由于Z-Blog会把转行改为<BR>,所以我们要转换回来
废话少说,贴部分主要代码
在shCore.js找到下面这句代码

this.originalCode=code;this.code=Chop(Unindent(code));

改为:(也就是说把<BR>给替换回转行了)

code=code.replace(/&lt;BR>/ig, "\n");this.originalCode=code;this.code=Chop(Unindent(code));

上面是主要的修改方法,下面说使用方法
最后我喜欢把这些代码写在网站设置管理版权申明那里,比较方便修改,你也可以写在模板里(注意下面的路径根据具体目录更换,最好用绝对路径)

&lt;link type="text/css" rel="stylesheet" href="/zb/highlight/SyntaxHighlighter.css"></link>

&lt;script language="javascript" src="/zb/highlight/shCore.js"></script>
&lt;script language="javascript" src="/zb/highlight/shBrushCSharp.js"></script>
&lt;script language="javascript" src="/zb/highlight/shBrushJScript.js"></script>
&lt;script language="javascript" src="/zb/highlight/shBrushSql.js"></script>
&lt;script language="javascript" src="/zb/highlight/shBrushJava.js"></script>
&lt;script language="javascript" src="/zb/highlight/shBrushXml.js"></script>
&lt;script language="javascript">
window.onload = function () {
dp.SyntaxHighlighter.ClipboardSwf = '/zb/highlight/clipboard_new.swf';
dp.SyntaxHighlighter.ClipboardImg = '/zb/highlight/icon_copy.gif';
dp.SyntaxHighlighter.HighlightAll();
}
&lt;/script>

使用方法,在内容中加入:

 &lt;pre class="这里写你代码所用的语言,如js,c#,java"&gt;这里贴代码!注意如果有&lt;BR&gt;记得要用转义(&amp;lt;)&lt;/pre&gt;

打包下载啦,猛击这里:dp.SyntaxHighlighter-zblog@fatkun.rar




fatkun

10条评论

第一次来贵博,博主的文采不错。有时间指点一下我,怎么把文章写好,自己写博客老觉得不怎么好。欢迎回访。

发表评论

电子邮件地址不会被公开。