SyntaxHighlighter出2.1版了 - 部落格

Wallis avatar
By Wallis
at 2009-12-05T20:12

Table of Contents

網頁版:http://kewang.pixnet.net/blog/post/25468641



之前我寫過一篇關於如何在網頁上利用SyntaxHighlighter這個library的文章,就可以顯
示漂亮的程式語法了。可是那時候我沒有告訴大家,要如何在你的blog上做這些設定。其
實還蠻簡單的,這邊就以Pixnet為例吧。

01 <script type="text/javascript">
02 jQuery(function(){
03 if(jQuery("pre[class^='brush'],
script[type='syntaxhighlighter']").length > 0){
04
jQuery.getScript("http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js",
function(){
05 SyntaxHighlighter.config.stripBrs = true;
06 SyntaxHighlighter.all();
07 });
08
09
jQuery.getScript("http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js");
10
jQuery.getScript("http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js");
11
jQuery.getScript("http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js");
12
13 jQuery(document.createElement("link")).attr({
14 type: "text/css",
15 href:
"http://alexgorbatchev.com/pub/sh/current/styles/shCore.css",
16 rel: "stylesheet",
17 media: "screen"
18 }).appendTo(jQuery("head").get(0));
19
20 jQuery(document.createElement("link")).attr({
21 type: "text/css",
22 href:
"http://alexgorbatchev.com/pub/sh/current/styles/shThemeRDark.css",
23 rel: "stylesheet",
24 media: "screen"
25 }).appendTo(jQuery("head").get(0));
26 }
27
28 jQuery("#box511201").hide();
29 });

在這邊假設大家都會用Javascript以及基本的jQuery語法,所以我就不說太詳細啦。首先
先增加一個可以放javascript的側邊欄位,然後把程式碼都複製進去。第3行的判斷式,
主要是拿來判斷目前這一頁的原始碼是否含有pre標籤,而且class是brush開頭;或者是
script標籤,而且 type是syntaxhighlighter。用pre標籤是SyntaxHighlighter 2.0的語
法,而用script標籤是2.1的語法,為了相容我就兩個都加上去啦。

如果判斷式符合的話,就執行下面的程式,因為我會放程式碼的文章不多,所以只要你看
的這個網頁沒有符合這個條件的話,就不會讀取 SyntaxHighlighter的js以及css檔了,
這主要是為了節省網路頻寬,要不然每一篇文章都要讀取這些js以及css,會拖慢網頁的
開啟速度。

第5跟第6行則是執行SyntaxHighlighter,第5行stripBrs=true主要是用在blog上,如果
blog的HTML Editor會自動換行的話,這邊就要設定將stripBrs為true,將br標籤去除。
剩下的程式都是動態產生標籤,因為Pixnet無法自己修改 head標籤的資料,所以就只能
用append的方式加上去囉。

再來就是第28行,將你產生的這個側邊欄位隱藏起來,這也是blog常用的技巧之一,然後
就大功告成啦,其他設定就看看官網的使用說明囉!想想看,如果Pixnet不支援jQuery的
話,上面這些語法我恐怕要寫的很複雜才能成功的執行吧 = =。

參考資料:
SyntaxHighlighter - 把你的程式碼擺在網頁上
SyntaxHighlighter:Usage - Alex Gorbatchev

--
雜七雜八的kewang部落格 http://kewang.tw

--

All Comments

blogger 首頁youtube的畫面變叉叉

Andy avatar
By Andy
at 2009-12-04T00:50
請問有人知道該怎麼辦嗎 ? 我之前blogger內嵌的youtube本來可以直接點但是這兩天開始有些 影片就變叉叉了...但是點進去又變正常 http://solus-bellus.blogspot.com/ 請各路高手幫幫小弟 ~and#34;~ - ...

把發表過的plurk弄成列表?

Noah avatar
By Noah
at 2009-12-03T23:33
我剛剛爬一下文沒有看到類似的文章, 請問可以把發表過的噗浪弄成列表嗎? 想看看自己以前發表過的東西。 謝謝。 - ...

無名網誌的搜尋功能

Sierra Rose avatar
By Sierra Rose
at 2009-12-03T20:13
※ [本文轉錄自 ask 看板] 作者: lovefordidi (請Q我 謝謝您) 站內: ask 標題: [請問] 無名網誌的搜尋功能 時間: Wed Dec 2 22:41:03 2009 各位板友好 在下想請問關於無名網誌的搜尋功能 請問我所搜尋的blog主人會曉得今天有甚麼關鍵字被搜尋了嗎 ...

Thickbox燈箱特效無痛整合

Yedda avatar
By Yedda
at 2009-12-02T15:33
http://nightspirit622.blogspot.com/2009/12/blogger-hack-thickbox-31.html 最近一時興起就把thickbox裝進blogger, 不過要用這個hack得自行找地方放js檔就是了。 想要讓圖片顯示變得更酷炫的話請務必試看看 :) ...

外掛無法自動更新

Ethan avatar
By Ethan
at 2009-12-02T08:18
前陣子開始 我的外掛就無法在後臺更新 這樣還挺困擾的atat 可能跟主機更新有關 查了一下 有可能因為資料夾權限的問題 那要怎麼修改呢? 還是說有什麼別的原因 謝謝大家 -- http://www.small.idv.tw Smallx2 studio http://www.small.idv.tw/b ...