blog中的代码加亮

来源:互联网 发布:怎么在手机淘宝上开网店 编辑:程序博客网 时间:2024/04/27 22:03

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标签变成可视的标签

这个程序也是免费的:)