yesky,blogjava的编辑器提供插入代码的功能,可以把插入的代码根据语法格式化并加亮,其实他们后台使用的都是Actipro公司的codehighlighter控件实现的(http://www.actiprosoftware.com/Products/DotNet/CodeHighlighter/PasteCode.aspx),这个控件是免费的,下载的控件里提供了例子和帮助,所以编辑器里增加这个功能很简单。既然没有提供,我们只能自己想办法了。可以直接使用上面网址提供的演示功能,把我们的代码拷贝拷进文本框,然后点击“Syntax Hightlight”,就会给出格式化后的html代码,我们把html代码前后加上<PRE style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid; FONT-FAMILY: Courier New, monospace; BACKGROUND-COLOR: #fffef8">和</pre>,然后拷贝到和讯的编辑器(html编辑状态),就可以了。试了一下,编辑器好像不支持换行,可以到http://www.zeali.net/codeHighlighter.php处理一下,加上换行符就可以了,其实这个代码着色器也是连接到actipro公司的网址上处理的,只不过后面又增加了一个处理换行的功能,也很方便:)
给个例子:
1 public class MyResourceHog : IDisposable
2 {
3 // 已经被处理过的标记
4 private bool _alreadyDisposed = false ;
5 // 终结器。调用虚拟的Dispose方法
6 ~ MyResourceHog()
7 {
8 Dispose( false );
9 }
10
11 // IDisposable的实现
12 // 调用虚拟的Dispose方法。禁止Finalization(终结操作)
13 public void Dispose()
14 {
15 Dispose( true );
16 GC.SuppressFinalize( true );
17 }
18
19 // 虚拟的Dispose方法
20 protected virtual void Dispose( bool isDisposing )
21 {
22 // 不要多次处理
23 if ( _alreadyDisposed )
24 return ;
25 if ( isDisposing )
26 {
27 // TODO: 此处释放受控资源
28 }
29 // TODO: 此处释放非受控资源。设置被处理过标记
30 _alreadyDisposed = true ;
31 }
32 }
33
34
codehilighter不支持c和c++,可以用c#来代替。另外还找到一个处理c和c++代码的程序-cstyle(code style)http://www.freewebs.com/littlebob/cstyle.htm,实现的功能如下:
c_html 将C/C++语言源代码转化成HTML格式的WEB页面 DEV-C++风格
c_ubb 将C/C++语言源代码转化成UBB码 DEV-C++风格
vc_html 将C/C++语言源代码转化成HTML格式的WEB页面 VC风格
vc_ubb 将C/C++语言源代码转化成UBB码 VC风格
html_html 将html中的html标签变成可视的标签
这个程序也是免费的:)