厭倦了單調的程式碼嗎,來加點色彩吧!
當你需要某種軟體功能時,要花多久時間才能找到讓你滿意的答案呢?龐大的資料量,加上不同的用語、語言、資料來源,使得需要在搜尋結果中花費很多時間來篩選,然後還要再一一測試,而且說不定還找不到想要的結果。所以搜尋引擎還有很多進步空間,suryvey、catalog類型的網站或文章還是需要的。
對於將程式碼加上語法色彩,大致上分為兩類,事先產生後將靜態的資料貼到網頁上,或是以javascript線上即時修改網頁,以下是一些例子:
事先產生:
1. Highlight(名字真直接)
桌上軟體,可將檔案轉換成所選的格式,語法以副檔名判斷,可選擇配色、CSS是否inline、是否顯示行數,可自行定義語法及配色,若輸出格式選擇UTF-8,中文在預覽視窗會是亂碼,不過輸出的結果是正確的。
//syntax highligth 測試程式碼 public static <T> void copy(List<? super T> dst, List<? extends T> src) { logger.info("copy 開始!"); for (int i = 0; i < src.size(); i++) { dst.set(i, src.get(i)); } logger.info("copy 結束!"); }
2. SyntaxColor4Writer (Windows Live Writer Plugin)
需要.NET 2.0,使用inline CSS,神奇的是會將WLW轉換編輯模式後吃掉的空白和斷行回復。
註:0.26版在WLW 12.0.1367.1128無法執行
//syntax highligth 測試程式碼 public static <T> void copy(List<? super T> dst, List<? extends T> src) { logger.info("copy 開始!"); for (int i = 0; i < src.size(); i++) { dst.set(i, src.get(i)); } logger.info("copy 結束!"); }
3. CodeSnippet(Eclipse plugin)
將所選程式片段依Editor中的顏色設定產生輸出,因為如此所以不需要定義語法,但是目前只支援幾種格式,使用inline CSS。
//syntax highligth 測試程式碼 public static <T> void copy(List<? super T> dst, List<? extends T> src) { logger.info("copy 開始!"); for (int i = 0; i < src.size(); i++) { dst.set(i, src.get(i)); } logger.info("copy 結束!"); }
4. Iris Syntax Highlighter(C# Open Source)
提供網頁版syntax highlight介面,下載版需要.NET 2.0,利用Vim(一種文字編輯器)已有的語法定義檔,支援超過460種語法,可選擇配色、是否顯示行數,可自行定義語法及配色。
//syntax highligth 測試程式碼
public static <T> void copy(List<? super T> dst, List<? extends T> src) {
logger.info("copy 開始!");
for (int i = 0; i < src.size(); i++) {
dst.set(i, src.get(i));
}
logger.info("copy 結束!");
}
| |
1
2
3
4
5
6
7
8
|
線上即時:
1. SyntaxHighlighter (Yahoo Developer Network上有在用)
可以處理<textarea>(ps. 為了在feed中有較好的顯示結果,最好還是使用<pre>),使用CSS檔做樣式,適合用在少量程式碼的情況(因為用regular expression來做parse),在Blogger上因為轉換換行符號的問題,需要特別設定(只是多呼叫一個函示)。
//syntax highligth 測試程式碼
public static <T> void copy(List<? super T> dst, List<? extends T> src) {
logger.info("copy 開始!");
for (int i = 0; i < src.size(); i++) {
dst.set(i, src.get(i));
}
logger.info("copy 結束!");
}
以下這個不知如何? 我沒試過, 目前是備而不用的狀態。
回覆刪除貼程式碼在blogger上