顯示具有 Tool 標籤的文章。 顯示所有文章
顯示具有 Tool 標籤的文章。 顯示所有文章

2007年11月9日

Syntax Highlight

厭倦了單調的程式碼嗎,來加點色彩吧!

當你需要某種軟體功能時,要花多久時間才能找到讓你滿意的答案呢?龐大的資料量,加上不同的用語、語言、資料來源,使得需要在搜尋結果中花費很多時間來篩選,然後還要再一一測試,而且說不定還找不到想要的結果。所以搜尋引擎還有很多進步空間,suryvey、catalog類型的網站或文章還是需要的。

對於將程式碼加上語法色彩,大致上分為兩類,事先產生後將靜態的資料貼到網頁上,或是以javascript線上即時修改網頁,以下是一些例子:

事先產生:

1. Highlight(名字真直接)
桌上軟體,可將檔案轉換成所選的格式,語法以副檔名判斷,可選擇配色、CSS是否inline、是否顯示行數,可自行定義語法及配色,若輸出格式選擇UTF-8,中文在預覽視窗會是亂碼,不過輸出的結果是正確的。

Highlight Screen Capture
因為使用CSS檔,以下程式碼在feeds中顯示會有問題。
//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 結束!");
}
Read more

2007年11月7日

Blog Editor

編輯blog文章,這麼常做的事反而這麼不方便。

Weblog的出現以及網路環境的成熟,讓個人發表網頁變的簡單了,blog的數量一下子增加,這麼多人每天進行的活動,照理說應該存在適當的輔助工具,但是卻沒有。(或是有但我沒找到)

目前我是先在客戶端以自己喜歡的網頁編輯器編輯好文章,用瀏覽器測試自己想要的效果,然後登錄到Blogger的線上介面,貼上文章的HTML。

使用Blogger線上編輯器有些需要注意的事:
  • 要在「設定」>「格式」頁面中將選項「轉換分行符號」設定為,否則在線上編輯器中的換行會被換成<br />。
    (通常在編輯HTML時都不會把所有內容排成一行,如果不改設定就會出現一大堆換行)
  • 不要按到網頁編輯器中的撰寫(其實就是所視即所得的編輯方式),不然一些自動轉換會改變你的文章格式。
    (例如<pre></pre>中的空白和換行會被壓縮成一個空白)
  • 預覽看到的是將轉換分行符號設定為是的結果。

這種土法煉鋼的方式其實是很不方便的,這時如果有一個好用的離線部落格編輯器就好了,最好要是免錢的!(少男的祈禱~~)
但是…現實總是殘酷的!
參考了Top 10 Free Desktop Blog Editors for Windows十大免費部落格寫作軟體之旅中的幾個比較可以行的軟體,只考慮編輯、上下載文章這兩種最基本的功能:

  • Windows Live Writer beta 3
    編輯:切換編輯模式會修改網頁(空白和換行會被壓縮成一個空白、HTML保留符號會被自動轉換,對於有貼程式碼的會造成困擾)
    上下載:會修改網頁(空白和換行會被壓縮成一個空白、HTML保留符號會被自動轉換)、下載文章會失敗
  • Zoundry Blog Writer 1.0.40
    編輯:切換編輯模式會修改網頁(HTML保留符號會被自動轉換)
    上下載:會修改網頁格式(HTML保留符號會被自動轉換、為了只顯示文章摘要所加的<div id="fullpost"></div>不見了)
  • Zoundry Raven alpha 0.8.134
    編輯:下載文章失敗就不太想測了,不過看起來好像還ok
    上下載:下載文章會失敗(好像是XML not well-formated)
  • Flock 1.0
    編輯:切換編輯模式會修改網頁(空白和換行會被壓縮成一個空白、HTML保留符號會被自動轉換)
    上下載:沒有下載功能
  • ScribeFire 1.4.2 (Mozilla Firefox 附加元件)
    編輯:切換編輯模式會修改網頁(空白和換行會被壓縮成一個空白、HTML保留符號會被自動轉換)
    上下載:顯示上載成功,但實際上卻沒有上載

當然光批評比實際上去做要容易的多,而且這些是免費的軟體,很多都還在測試階段,有很多問題感覺好像都是自動轉換格式造成的,而且似乎只會對想貼程式碼,或不想網頁元素變成一坨的人有影響,難怪還是有人覺得好用。
所以…向流星許願吧!希望好用的blog editor早日出現。

Read more