最近在 google code 上看到 google code prettify,基本上這個工具做的事和 SyntaxHighlighter 是相同的,不過相對來說,SyntaxHighlighter 是比 google code prettify 來得小而功能比較好,也比較模組化(把每個語言分開,不過這也代表安裝設定較為麻煩)。其實如果只是要讓 po 出來的程式碼比較好看的話,用那個都可以,但看在 google 的面子上,用 google code prettify 可能還是比較好的選擇,而且我應該也不會用到 SyntaxHighlighter 其他的功能,所以就來改用 google code prettify 好了。
要在 blogger 上用 SyntaxHighlighter 有個大問題,SyntaxHighlighter 預設要把程式碼放在 textarea 中再用 class 來標記,但在 blogger 上預設情況下會為 textarea 中每行的結尾加上<br /> ,如果直接把 SyntaxHighlighter 用在 blogger 上就會在每一行後看到 <br /> 了。有人改了 SyntaxHighlighter 來避這個問題,但其實不用去修改 SyntaxHighlighter 本身的程式,只要在把程式丟給 SyntaxHighlighter 前先把 <br /> 濾掉,像這樣:
for(var i=0,elements=document.getElementsByName('code');i<elements.length;++i) {
var element = elements[i];
element['innerHTML'] = element['innerHTML'].replace(/<br\s*\/?>/gi,'\n');
}
dp.SyntaxHighlighter.HighlightAll('code',false,false);
6 comments:
您好,請問您這篇是用SyntaxHighlighter所顯示出來的嗎?
因為我發現你的是用Code將上面語法包起來
最近一直做不出來,一直卡在br上以及不會自動斷行,煩請解惑一下。萬分感謝!
不是。我原本的確是用 syntaxhighlight 的,不過我後來改用 google code prettify 了。
要在 blogger 上用 syntaxhighlight 通常都會遇到 br 的問題,你就還是用 textarea 把你的 code 包起來,然後在 template 的最底端加上我文中的 javascript,這段 javascript 基本上就是會先把 blogger 自動加上的 br 濾掉再丟給 syntaxhighlight 處理。
謝謝你回覆喔~果然在Blogger上沒辦法使用。
用了好久用不出來說>"<
Hmm, this post is 2 year-old, but can I still ask about it? Not working on my blog... phew....
@ Steven Luck
SyntaxHightlight has new version at http://alexgorbatchev.com/wiki/SyntaxHightlight. The problem mention here is merged into official code, with bloggerMode configuration. (http://alexgorbatchev.com/wiki/SyntaxHightlight:Configuration).
一皿一(汗)原來可以這樣做,竟然沒想到,配上jQuery只要多一行jQuery('code').find('br').remove();解決我的問題真是太棒了。感謝你(泣)
Post a Comment