2008年8月19日 星期二

[Blogger] 貼code語法變色

之前語法變色使用了 google code prettify,用起來蠻簡單的,但是還是有一些缺點
1. 在貼code的時候對於特殊符號 "<" ">" 需要做encode不然會造成貼出來的內容亂掉,當然這不是它的錯誤,而是blogspot會將html語法做一些處理,所以會去掉一些內容。
2. 雖然有python的語法變色,但是在經過重新編輯之後,有些空白會被吃掉,造成要把貼上的code複製來執行時要重新排版。

因此我決定用另外一種語法變色的方法:直接產生html語法

因此貼上code的流程變成:
1. 編輯好程式碼
2. 複製程式碼到http://tohtml.com/這個網站,產生相對應的html碼
3. 複製html碼到blogspot

這樣做其實用prettify也是可能達到一樣的效果,但是就不必用

code
來包住code部分,只是中間需要經過轉換比較麻煩而已。

缺點則是有些中文會怪怪的?

重點是它的顏色我覺得比較好看...^^,目前先暫時試試看,等以後有更好的解決方法在說。

測試:
# -*- coding: cp950 -*-

from xml.dom.minidom import parseString

#import xml.dom.minidom

xmlDoc = open("D:\\2.txt").read() # 讀取檔案到string xmlDoc
xmlDoc = unicode(xmlDoc, "big5").encode("utf8") # 把xmlDoc(big5編碼)變unicode, 在變成utf8 text code

doc = parseString(xmlDoc)

query = "名稱"
query = unicode(query, "big5") # 把query變成unicode, 以供xml parser查詢節點, 因為xml parser內部以unicode形式運作

eles = doc.getElementsByTagName(query) # 查詢tag name為query的節點

for ele in eles: # 印出節點text value
print ele.firstChild.data.encode("big5") # 把unicode編碼成big5輸出


參考資料 :
http://tohtml.com/

沒有留言: