SyntaxHighlighter,是一款用於web頁面的代碼著色工具,可以用來著色多種語言,可以是HTML,CSS,Javascript,還可以是C,JAVA等編程語言。最早見於Yahoo的YUI,當時還屬於自由軟件,最近打開官方網站發現已被goolge收編。
它可以在網頁中對各種程序源代碼語法進行加亮顯示。支持當前流行的各種編程語言:C#、CSS、C++、Delphi、Java、JavaScript、PHP、Python、Ruby、SQL、Visual Basic、XML / HTML
下載地址:http://www.dreamprojections.com/syntaxhighlighter/
或http://code.google.com/p/syntaxhighlighter/
該工具核心基於javascript,使用起來很簡單:
1、假設網頁文件test.htm存放在一個目錄,將dp.SyntaxHighlighter解壓縮,並復制其中的Scripts文件夾和styles文件夾,確保和test.html在同一個目錄下面。
2、在網頁的<head></head>之間插入以下代碼:
<link type="text/css" rel="stylesheet" href="Styles/SyntaxHighlighter.css"></link>
3、在網頁要顯示程序源代碼的地方插入以下代碼,若是HTML類型的話,用XML(其它的如class="js"表示以js語法顯示源代碼,其他可設定的class值分別為c#、css、c、elphi、java、js、php、python、ruby、sql、vb、xml):
<textarea name="code" class="js" rows="15" cols="100">
程序源代碼放在這兒
</textarea>
說明:
name="code"是必須的,不能更改;
class="xml"是著色的方式,即需要著色的代碼的類型,根據需要進行更改。
4、在網頁尾部的</body>之前插入以下代碼:
code<script class="javascript" src="Scripts/shCore.js"></script>
<script class="javascript" src="Scripts/shBrushCSharp.js"></script>
<script class="javascript" src="Scripts/shBrushPhp.js"></script>
<script class="javascript" src="Scripts/shBrushJScript.js"></script>
<script class="javascript" src="Scripts/shBrushJava.js"></script>
<script class="javascript" src="Scripts/shBrushVb.js"></script>
<script class="javascript" src="Scripts/shBrushSql.js"></script>
<script class="javascript" src="Scripts/shBrushXml.js"></script>
<script class="javascript" src="Scripts/shBrushDelphi.js"></script>
<script class="javascript" src="Scripts/shBrushPython.js"></script>
<script class="javascript" src="Scripts/shBrushRuby.js"></script>
<script class="javascript" src="Scripts/shBrushCss.js"></script>
<script class="javascript" src="Scripts/shBrushCpp.js"></script>
<script class="javascript">
dp.SyntaxHighlighter.HighlightAll('code');
</script>
一個頁面裡面可以包含任意多個需要著色的代碼段;
壓縮包中有各種著色代碼類型的著色案例,大家可以參照使用。
方法二:
1. 首先在頁面上添加如下代碼(假設下載後的SyntaxHighlighter放在SyntaxHighlighter目錄下面,注意目錄結構):
code<link type="text/css" rel="stylesheet" href="SyntaxHighlighter/Styles/SyntaxHighlighter.css"></link>
<script language="javascript" src="SyntaxHighlighter/Scripts/shCore.js"></script>
<script language="javascript" src="SyntaxHighlighter/Scripts/shBrushCSharp.js"></script>
<script language="javascript" src="SyntaxHighlighter/Scripts/shBrushXml.js"></script>
<script language="javascript">
window.onload = function () {
dp.SyntaxHighlighter.ClipboardSwf = 'SyntaxHighlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
官方的安裝中沒有window.onload,我想這個還是需要的,畢竟,頁面加載的時候我就需要給代碼著色。
2. 使用方法如下:
方法一:使用pre
<pre name="code" class="c-sharp">
... some code here ...
</pre>
方法二:使用textarea
<textarea name="code" class="c#" cols="60" rows="10">
... some code here ...
</textarea>
另外,這裡還有一些高級特性的設置方法可供參考,諸如代碼折疊等。