在上面的輸入區中輸入程式碼,若含javascript碼,還要在javascript的方塊上打勾,然後按轉換,便可以在下方看到轉換後的程式碼,其下還有結果預覽,可以先看看這段程式碼貼上網頁後,會長什麼樣子。
不知道為什麼FireFox不支援這隻javascript,可以使用這個放在外連空間的
http://popodragon.myweb.hinet.net/Blogger/demo.html
簡單做個程式解說,承上次的程式碼區塊實作,這次我嘗試用javascript寫了一支轉換程式,用來消除程式碼中原先的瀏覽器會認錯的HTML跳脫符號,還有順道添上顏色,還在發展階段,BUG不少,總是搞不定javascript內建的字串函式,尤其是substr(),很多時候用起來含糊不清,簡直到了令人髮指的地步。
上色的部分,目前規劃分三種顏色,標籤用紫色,字串用淺藍,註解用綠色,背景則用粉黃色,這是螞蟻書彩色版中的配色,我覺得不錯,看起來很舒服,就採用了這樣的配色模式。
不過上色問題也很大,由於搞不定substr(),所以若這三種混搭在一起,不會互相配合,譬如說在註解裡面放標籤,本來原則上應該也要是綠色,但因為這隻程式很笨,所以裡面的標籤依然顯示紫色,這是它最需要加強的地方。
另外還有一些小bug,目前HTML碼比較不會出問題,javascript程式碼就難看了,尤其是c-style的注解,就算是正確的程式碼,也很有因為誤判而造成上色混亂的情形,有時候反而比原本的樣式更難以閱讀。
還有,在IE 6.0底下是看不到顏色變化的,我也不曉得為什麼。
還有關於行號,因為用圖片太多問題,字型不能變化,一變化就對不上,所以我改成使用另一個區塊,只是放在程式碼區塊的左邊。顯示沒問題,不過需把兩個區塊都改成向左浮動,所以寬度必須調整得宜,否則太小或太大排版都會亂掉。恩,還不是很理想,不過目前只能想到這樣做了。
就這樣,若有興趣適用的話,可以依下面的步驟使用:
1.在css宣告區中把下面的這幾個宣告複製進去,當然顏色或字型什麼的都可以自己改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
pre.codeStyle { background-color: #FFFFF0; background-repeat: no-repeat; background-attachment: scroll; /* 可隨捲軸移動 */ background-position: top left; border: 1px solid #ccc; padding: 0px 0px 0px 5px; overflow:auto; max-width:588px; /* 因為blog的寬度就這樣 */ line-height: 1.3em; } .note{ color:green !important ; } .quot{ color: firebrick !important ; } .tag{ color: blue; } .reservedWord{ color:#4B4BF0; }2.把要展示程式碼複製到上方的上色程式輸入區,按轉換取得程式碼完整的HTML碼,直接貼上網頁(部落格),彩色的程式碼便出現了,就是這麼簡單。
上色程式原始碼 codeColor.js:
http://surveyork.blogspot.com/2010/06/javascript-highlight-program-source.html2010.6.10 更新: 修正註解和字串部分,使之可以印出上色程式本身。 2010.5.2 更新: 增加C/C++上色功能 2010.4.29 更新: 修正字串和註解,使其內不再有其他的顏色標籤 2009.11.29 更新: 修正網址會被javascript解碼器勿判為註解的bug 2009.11.25 更新: 把顏色標籤改成<span>,這樣一來IE也可以正常顯示顏色變化。 修正<, >當作運算符號會加入顏色標籤的bug,但必須有空格才能判斷。 2009.11.24 更新: 基本上已經可以拿掉註解中其他的顏色標籤。( 全程都沒使用substr )
No response to “[JS]程式碼上色程式(beta)” ;
張貼留言