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公司的網址上處理的,只不過後面又增加了一個處理換行的功能,也很方便:)
給個例子:
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標籤變成可視的標籤
這個程序也是免費的:)