日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

WordPress代碼高亮插件SyntaxHighlighter終極使

系統(tǒng) 2693 0

子曰: 工欲善其事,必先利其器。作為碼農(nóng)一枚,再加上站長這個(gè)已經(jīng)不再光鮮的稱呼,豈能沒有一款經(jīng)濟(jì)實(shí)用、操作簡單、而且功能必須強(qiáng)大、樣式也必須好看的Wordpress代碼高亮插件?!作為一個(gè)視代碼如生命的碼農(nóng),把代碼整的漂漂亮亮是一件多么神圣和偉大的事情啊!

  今天就給大家推薦一款這樣的代碼高亮插件:SyntaxHighlighter Evolved。相信我, 功這款插件能強(qiáng)足夠大、并且簡單易用,絕對值得推薦。本站就是用的這款插件,大家可以看看“生病的JavaScript代碼”,這就是最好的例子。
插件介紹

插件名稱:SyntaxHighlighter Evolved

插件作者:Viper007Bond, automattic

作者主頁:http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/

插件類型:代碼高亮

中文支持:支持

安裝環(huán)境:WordPress2.7或以上版本,經(jīng)過我自己的測試,在3.3和3.4上都可以正常運(yùn)行

下載地址:點(diǎn)擊這里下載最新版

  SyntaxHighlighter Evolved基于開源的JS核心庫:SyntaxHighlighter JavaScript package by Alex Gorbatchev二次開發(fā)擴(kuò)展的。安裝后只需簡單設(shè)置一下,不用修改任何代碼即可達(dá)到很好的效果。
功能特效

  說起SyntaxHighlighter Evolved的特效,忍不住要“炫耀”一下。不說不足以讓你感受到SyntaxHighlighter Evolved的強(qiáng)悍功能。SyntaxHighlighter Evolved的功能特效如下:

??? 代碼高亮
??? 支持Eclips、Emacs等多種樣式,可搭配不同風(fēng)格的主題
??? 特色——顯示工具條。右上角顯示工具條,可以”查看源代碼”、”復(fù)制源代碼”、”打印源代碼”。(只有第2版支持)
??? 顯示行號
??? 長代碼自動(dòng)換行(只有第2版支持)
??? 可以點(diǎn)擊代碼中的超文本鏈接
??? 可以收縮代碼框
??? 高亮顯示模式—某一行高亮
??? 設(shè)置開始行號
??? 自定義樣式

特效演示

  只要做Web應(yīng)用的,無論是JSP,還是PHP,甚至ASP.NET,都會用JavaScript代碼。所以,就是用JavaScript代碼來演示SyntaxHighlighter的功能吧。要實(shí)現(xiàn)的功能是計(jì)算第N個(gè)斐波納契數(shù)列(Fibonacci Sequence)數(shù)列的值。同時(shí),我們要求文件名顯示為:FibonacciSequence.js;代碼的第二行高亮顯示。則實(shí)例如下:

          function fib(n) {

        return n<2 ? n : fib(n-1) + fib(n-2);

    }    function fib(n) {

        return n<2 ? n : fib(n-1) + fib(n-2);

    }


    

?
  怎么樣,你是不是已經(jīng)被SyntaxHighlighter強(qiáng)大功能震撼了?也許你已經(jīng)好奇,這是如何實(shí)現(xiàn)的?我們接下來就介紹SyntaxHighlighter的使用方法。
安裝方法

  只需要在后臺插件里搜索“SyntaxHighlighter Evolved”之后點(diǎn)擊安裝,啟用即可。
使用方法

  使用方法很簡單。在發(fā)布文章時(shí),在“HTML”編輯模式下(注意:不是CKEditor等富文本編輯模式;防止讓這些富文本編輯器把代碼轉(zhuǎn)義了。),使用如下代碼,把需要展示的代碼包含起來即可:(注意:把前面的@符號去掉。)

??? [@java]這里寫你的代碼[/java]

??? [@css autolinks="false" classname="myclass" collapse="false" firstline="1" gutter="true" highlight="1-3,6,9" htmlscript="false" light="false" padlinenumbers="false" smarttabs="true" tabsize="4" toolbar="true" title="example-filename.php"]這里寫你的代碼[/css]

??? [@code lang="js"]這里寫你的代碼[/code]

??? [@sourcecode language="plain"]這里寫你的代碼[/sourcecode]

??? 推薦使用這種方式。這種使用方式,見"最佳實(shí)踐"

  其實(shí),在網(wǎng)上,搜“SyntaxHighlighter 使用方法”就會出現(xiàn)一堆結(jié)果,里面大多時(shí)對于這些使用方法的羅列。很少去講解這些配置項(xiàng)的意思和說明。下面,我將針對這些配置進(jìn)行詳細(xì)說明。同時(shí),針對這些配置的使用,我總結(jié)了SyntaxHighlighter使用方法的最佳實(shí)踐。如果急于知道結(jié)果,可以直接查看“最佳實(shí)踐”。
配置詳解
代碼樣式配置
表-1-SyntaxHighlighter配置參數(shù)表

簡碼 默認(rèn)值 含義說明 V2支持 V3支持
lang 說明代碼塊是哪種語言? 支持 支持
autolinks true Toggle automatic URL linking. 是否自動(dòng)將網(wǎng)址轉(zhuǎn)換為鏈接。 默認(rèn)轉(zhuǎn)換。可以后臺管理頁面修改默認(rèn)值。? 示例:點(diǎn)擊查看 支持 支持
classname Add an additional CSS class to the code box. 允許你添加一個(gè)或多個(gè)自定義的樣式。 默認(rèn)沒有。可以后臺管理頁面修改默認(rèn)值。 示例:點(diǎn)擊查看 支持 支持
collapse ? Toggle collapsing the code box by default, requiring a click to expand it. Good for large code posts. 是否默認(rèn)折疊代碼段。如果折疊,這需要一個(gè)“點(diǎn)擊”操作,才能展開。非常適合有大段代碼的文章。默認(rèn)不折疊。可以后臺管理頁面修改默認(rèn)值。? 示例:點(diǎn)擊查看 支持 支持
firstline 1 An interger specifying what number the first line should be (for the line numbering). 設(shè)置起始行的行號。 示例:點(diǎn)擊查看 支持 支持
gutter ? Toggle the left-side line numbering. 是否顯示行號。默認(rèn)顯示。可以后臺管理頁面修改默認(rèn)值。? 示例:點(diǎn)擊查看 支持 支持
highlight A comma-sperated list of line numbers to highlight. You can also specify a range. Example:?2,5-10,12 需要高亮顯示并使用逗號分隔的行號。同時(shí),也支持區(qū)間(開始行號-結(jié)束行號)。例如:2,5-10,12。? 示例:點(diǎn)擊查看 支持 支持
htmlscript ? Toggle highlighting any extra HTML/XML. Good for when you're mixing HTML/XML with another language, such as having PHP inside an HTML web page. The above preview has it enabled for example. This only works with certain languages. 是否高亮顯示功能任何額外的HTML / XML。特別適合混合HTML/XML與另一種語言混合的情況下。如在HTML代碼中含有部分PHP代碼。注意,這僅僅適用于特定的語言。 示例:點(diǎn)擊查看 支持 支持
light false ?Toggle light mode which disables the gutter and toolbar all at once. 是否顯示高亮模式。默認(rèn)是關(guān)閉。可以后臺管理頁面修改默認(rèn)值。 ? ?
padlinenumbers off Controls line number padding. 設(shè)置行號的格式化,前面是否補(bǔ)零。默認(rèn)是關(guān)閉。可以后臺管理頁面修改默認(rèn)值。 支持 支持
title Sets some text to show up before the code. 設(shè)置文本的標(biāo)題。默認(rèn)沒有。可以后臺管理頁面修改默認(rèn)值。 不支持 支持
toolbar false ?Toggle the toolbar (buttons in v2, the about question mark in v3) 默認(rèn)不顯示。可以后臺管理頁面修改默認(rèn)值。? 示例:點(diǎn)擊查看 支持 不支持
wraplines false Toggle line wrapping. 是否開啟自動(dòng)換行。可以后臺管理頁面修改默認(rèn)值。 支持 不支持
smarttabs true Allows you to turn smart tabs feature on and off.? Click here ?for a demo.智能制表符 支持 不支持
tabsize 4 Allows you to adjust tab size.? Click here ?for a demo.制表符的長度。 支持 不支持


顏色主題

  目前IT行業(yè)中,常用的語言有幾十種;使用的開發(fā)環(huán)境也多種多樣,比如開發(fā)Java的也許用Eclipse的比較多;但是在Linux下做C/C++開發(fā)的也許用Emacs等。見過這些開發(fā)環(huán)境的人都知道,這些開發(fā)環(huán)境的高亮模式、顏色等都是不一樣的。習(xí)慣了Eclipse的人很難適應(yīng)Emacs;反之亦然。SyntaxHighlighter考慮的很周全,她在內(nèi)部直接繼承了大概其中這樣的顏色主題來供大家選擇。大家可以在后臺的管理頁面輕松的選擇自己喜歡的“顏色主題”來進(jìn)行顯示。“顏色主題”列表如下:(排名部分前后。呵呵)

??? Default
??? Django
??? Eclipse
??? Emacs
??? Fade to Grey
??? Midnight
??? RDark
??? None

語言別名

  從事IT行業(yè)的朋友也許都知道,由于歷史等原因,一個(gè)語言可能有好幾個(gè)名字。比如JavaScript,微軟山寨了個(gè)JScript;后來經(jīng)過ECMA標(biāo)準(zhǔn)化之后,名字又稱了ECMAScript;我們大家平時(shí)還簡稱成JS。這就給我們在使用SyntaxHighlighter的語言代號時(shí),造成了一定的困難:不知道到底該用哪個(gè)名字才是“正確”的。

  其實(shí),這點(diǎn)SyntaxHighlighter也考慮到了。她通過“語言別名”的方式很好的解決了這個(gè)問題。
表-2-SyntaxHighlighter中“語言別名”和“語言代碼”對應(yīng)表

語言別名 語言代碼 說明
as3 as3 不知道是否支持AS2?
actionscript3 as3
bash bash 竟然還支持Shell.
shell bash
coldfusion coldfusion ?
cf coldfusion
clojure clojure ?
clj clojure ?
cpp cpp ?
c cpp ?
c-sharp csharp ?
csharp csharp
css css ?
delphi delphi 看來Delphi和Pascal確實(shí)有一腿啊!
pas delphi
pascal delphi
diff diff ?
patch diff ?
erl erlang ?
erlang erlang ?
fsharp fsharp ?
groovy groovy ?
java java ?
jfx javafx ?
javafx javafx
js jscript 從這里可以看出,針對JavaScript的代碼,寫js行,寫javascript行,甚至是微軟的jscript都行。
jscript jscript
javascript jscript
latex latex Not used as a shortcode
tex latex ?
matlab matlabkey ?
objc objc ?
obj-c objc
perl perl ?
pl perl
php php ?
plain plain ?
text plain ?
ps powershell ?
powershell powershell
py python ?
python python
r r Not used as a shortcode
splus r ?
rails ruby 針對Ruby的。
rb ruby
ror ruby
ruby ruby
scala scala ?
sql sql ?
vb vb ?
vbnet vb
xml xml 針對XML、HTML以及XHTML等,其實(shí)都是按照XML來處理的
xhtml xml
xslt xml
html xml
xhtml xml



  從這個(gè)表中,我們也可以看出SyntaxHighlighter支持的編程語言多達(dá)二十五種語言:AppleScript、 ActionScript、 Bash、 ColdFusion、 C /C++、 C#、 CSS、 Delphi、 Diff(不知道這是不是一種編程語言)、 Erlang、 Groovy、 Java、 JavaFX、 JavaScript、 Perl、 PHP、 PowerShell、 Python、 Ruby、 Sass、 Scala、 SQL、 VB、 XML。
最佳實(shí)踐

  經(jīng)過配置的講解,我們可以明白,SyntaxHighlighter已經(jīng)遵循了軟件工程中的最佳實(shí)踐“約定大于配置”。其實(shí),我們并不需要過多地去設(shè)定SyntaxHighlighter的配置,只需要設(shè)定一些“實(shí)在沒辦法約定”的配置項(xiàng)即可。比如:title、highlight等。另外,經(jīng)過我自己的實(shí)際測試,我還發(fā)現(xiàn)了第五種使用方法,其實(shí),我們可以在[代碼名稱]這個(gè)標(biāo)簽中,添加剛剛講到的配置配置項(xiàng)。當(dāng)然,lang就沒必要了。因?yàn)檫@里已經(jīng)通過“標(biāo)簽名”指定過了。綜上所述,SyntaxHighlighter使用方法的最佳實(shí)踐如下:(下面以Java代碼為例)

  [@java title="自定義的文件名" highlight="高亮的行"] 這里寫你的代碼 [/java]

  有時(shí),我們并不需要一定有高亮強(qiáng)調(diào)的行,這是highlight就可以省略掉。另外,如果你需要自定義樣式,可以添加class屬性。不過,我個(gè)人覺得必要性不大。
特效擴(kuò)展

??? 設(shè)置背景樣式

??? 大家在 "生病的JavaScript代碼" 也許會發(fā)現(xiàn)高亮部分的背景顏色比較深,也許有一些人看著不舒服(我個(gè)人就覺得顏色有點(diǎn)深)。也許就有人想修改高亮行的背景色。這是,就可以通過修改插件自帶的CSS文件,來實(shí)現(xiàn)自定義樣式的功能。

??? 在線操作方式是:登錄Wordpress后臺管理頁面,插件-編輯-選擇SyntaxHighlighter-選擇syntaxhighlighter/syntaxhighlighter2/styles/shThemeDefault.css-找到

      
                .syntaxhighlighter .line.highlighted.alt1,

        .syntaxhighlighter .line.highlighted.alt2

        {

            background-color: #e0e0e0 !important;

        }



    將其修改為:

        .syntaxhighlighter .line.highlighted.alt1,

        .syntaxhighlighter .line.highlighted.alt2

        {

            background-color: #6CE26C !important;

        }


      
    


??? 重起見,D瓜哥不建議做這個(gè)修改。如果以后修改“顏色主題”可能會帶來一點(diǎn)的不良影響。
??? 實(shí)現(xiàn)圓角和陰影

??? SyntaxHighlighter的“容器”樣式是一個(gè)方方正正。也許不如圓角、立體陰影效果漂亮。這個(gè)效果也很容易實(shí)現(xiàn)。只需要修改syntaxhighlighter的樣式即可;不過,這個(gè)修改是在主題的style.css文件做的。修改方式如下:將以下代碼添加到主題的style.css文件里面:

      
                .syntaxhighlighter{

             padding: 10px 0 !important;

             box-shadow: 1px 1px 3px #ccc;

            -webkit-box-shadow: 1px 1px 3px #ccc;

            -moz-box-shadow: 1px 1px 3px #ccc;

            border-radius: 5px;

           -webkit-border-radius: 5px;

            -moz-border-radius: 5px;

         }


      
    

WordPress代碼高亮插件SyntaxHighlighter終極使用詳解


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 肇庆市| 哈密市| 腾冲县| 凤阳县| 陇南市| 会东县| 大同市| 德庆县| 和林格尔县| 横山县| 资兴市| 兴隆县| 安义县| 于都县| 崇礼县| 惠水县| 襄垣县| 安塞县| 宝山区| 晋江市| 彩票| 曲松县| 古田县| 娱乐| 新丰县| 天峻县| 原平市| 荔浦县| 南皮县| 中阳县| 盱眙县| 洛宁县| 罗平县| 双流县| 韩城市| 勐海县| 南丹县| 桑植县| 章丘市| 厦门市| 鄂温|