用SyntaxHighlighter格式化代碼
什么是SyntaxHighlighter
事實(shí)上在三天前我也不知道SyntaxHighlighter是什么東西,經(jīng)過這兩天的接觸才發(fā)現(xiàn)這是個(gè)相當(dāng)不錯(cuò)的基于JS的html頁(yè)面代碼高亮渲染工具(呃,姑且這么稱呼吧)。為什么用代碼高亮渲染工具?當(dāng)我們有時(shí)候遇到技術(shù)問題求助無(wú)門的時(shí)候往往會(huì)想到上Google百度一下,看看網(wǎng)上有沒有現(xiàn)成的代碼供參考,于是搜索框關(guān)鍵字一打回車鍵一敲,刷地一下出現(xiàn)天文數(shù)字個(gè)搜索結(jié)果,這時(shí)候我們表示淡定,因?yàn)橹谰W(wǎng)上N多東西抄來(lái)抄去一大堆重復(fù)內(nèi)容。然后按搜索排名挨個(gè)點(diǎn)擊進(jìn)去,卻看到一個(gè)個(gè)網(wǎng)頁(yè)上幾百行亂糟糟的純文本代碼,過差的可讀性抹煞了閱讀的興趣也降低了閱讀的效率。這時(shí)候代碼高亮工具就站出來(lái)了,誓為捍衛(wèi)代碼的整齊和美麗展開局域性保衛(wèi)工作,于是我們可以發(fā)現(xiàn)一些靠譜的blog文往往會(huì)事先將里面的明文代碼格式化好打扮得跟IDE里面一個(gè)樣子供用戶閱讀,程序員表示這樣很愉快。
本blog使用的版本
網(wǎng)上流傳的代碼高亮渲染工具有很多種,經(jīng)過比較,最后敲定了用SyntaxHighlighter。搜索了一下發(fā)現(xiàn)SyntaxHighlighter 1.5版本目前是使用者較多的版本,于是小心翼翼地下載了文件包跟著教程配置了一下,效果不錯(cuò),為了獲得跟高級(jí)的特性訪問了一下 官網(wǎng) ,發(fā)現(xiàn)3.083版本都已經(jīng)出來(lái)了,就歡快地用了一下,發(fā)現(xiàn)配置比1.5稍簡(jiǎn)單,表現(xiàn)層和渲染層模塊的拆分更加合理了。
如何安裝
1.將文件壓縮包拷貝下來(lái),解壓到本機(jī)或者你的站點(diǎn),盡量保證存放的路徑明確;
2.在你的頁(yè)面中外鏈js文件shCore.js和shBrushJScript.js,以及相關(guān)css文件,也許你會(huì)發(fā)現(xiàn)style文件夾里包含了十幾個(gè)css文件,不用緊張,隨便挑選一個(gè)作為外鏈文件(至于為什么這樣做,稍后會(huì)說明);
|
1
2
3
4
5
6
7
8
|
<
SCRIPT
type
=
text
/javascript
src
=
"/scripts/shCore.js"
></
SCRIPT
>
<
SCRIPT
type
=
text
/javascript
src
=
"/scripts/shBrushJScript.js"
></
SCRIPT
>
<
LINK
rel
=
stylesheet
type
=
text
/css
href
=
"/STYLE/shCoreRDark.css"
>
?
<
SCRIPT
type
=
text
/javascript>
???
SyntaxHighlighter.all();
</
SCRIPT
>
|
4.在<pre class=”brush:js;”></pre>或者<script type="syntaxhighlighter" class="brush: js"></script>(建議不要使用script標(biāo)簽,因?yàn)檫@樣常用的標(biāo)簽很容易造成沖突)標(biāo)簽中創(chuàng)建代碼;
|
1
2
3
4
5
|
<
PRE
class
=
brush
:js;>function helloSyntaxHighlighter()
{
??
return "SyntaxHighlighter 3.0.83 ";
}
</
PRE
>
|
5.在頁(yè)面加載完成時(shí)執(zhí)行一句js代碼SyntaxHighlighter.all(),大功告成,你將看到跟本文代碼區(qū)域相似的效果。
?
安裝的本質(zhì)其實(shí)為頁(yè)面增加了下面這幾行代碼(可以放在head內(nèi),但建議放在body的最后面減輕對(duì)頁(yè)面加載造成的影響):|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<
SCRIPT
type
=
text
/javascript
src
=
"/scripts/shCore.js"
></
SCRIPT
>
<
SCRIPT
type
=
text
/javascript
src
=
"/scripts/shBrushJScript.js"
></
SCRIPT
>
<
SCRIPT
type
=
text
/javascript
src
=
"/scripts/shBrushXml.js"
></
SCRIPT
>
<
LINK
rel
=
stylesheet
type
=
text
/css
href
=
"/STYLE/shCoreRDark.css"
>
?
<
SCRIPT
type
=
text
/javascript>
????
SyntaxHighlighter.config.bloggerMode = true;
???
SyntaxHighlighter.defaults['toolbar'] = false;
?
SyntaxHighlighter.all();
</
SCRIPT
>
<
PRE
class
=
brush
:js;>function helloSyntaxHighlighter()
{
??
return "SyntaxHighlighter 3.0.83 ";
}
</
PRE
>
|
若希望SyntaxHighlighter能正常工作,shCore.js是必須的;shCoreRDark.css是格式化主題,可以在style文件夾中選擇你喜歡的一個(gè)主題文件并將它外鏈到頁(yè)面上;shBrushJScript.js文件的作用是為了讓渲染器能夠?qū)avascript代碼進(jìn)行格式化,shBrushXml.js的作用是為了讓渲染器能夠?qū)ML代碼進(jìn)行格式化,剛才說過SyntaxHighlighter支持23種語(yǔ)言,如果你需要渲染器支持其他語(yǔ)言,就必須外鏈其他相應(yīng)的文件,想了解各語(yǔ)言對(duì)應(yīng)的文件
請(qǐng)點(diǎn)擊這里
。
注意:確保外鏈路徑正確,所有對(duì)SyntaxHighlighter的自定義配置都應(yīng)寫在SyntaxHighlighter.all();之前。
如何更改css主題
SyntaxHighlighter 3.0.83支持更換主題樣式,方法很簡(jiǎn)單,直接更換內(nèi)的鏈接文件路徑就可以了:
|
1
|
<
LINK
rel
=
Stylesheet
type
=
text
/css
href
=
"PATH/Styles/FileName.css"
>
|
3.083版本的toolbar貌似被開發(fā)者弱化了,這里沒有CopyToClip按鈕,如果我們要復(fù)制一段代碼,雙擊這塊代碼區(qū)域即可。至此,如果只是想圖方便用一下SyntaxHighlighter讓你的技術(shù)博文看起來(lái)更賞心悅目一些,對(duì)SyntaxHighlighter的功能特性和實(shí)現(xiàn)沒有太大的興趣,那么進(jìn)行這里到這里就可以了,更多的分析和高級(jí)特性研究將會(huì)放到《SyntaxHighlighter的自定義配置》一文中。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

