不用插件實(shí)現(xiàn)WordPress代碼高亮顯示

          Posted on 2012-08-20 00:30 韓麥斯 閱讀(155) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): wordpress


          偶爾在日志中加入一些代碼,感覺(jué)完全沒(méi)必要安裝代碼高亮插件,萬(wàn)一某天不用插件了,頁(yè)面可能會(huì)很亂。其實(shí)大部分插件都是在代碼中強(qiáng)行加入一些標(biāo)簽,然后用CSS定義樣式,通過(guò)查看頁(yè)面源文件可以清楚地看到。

          有一個(gè)叫“發(fā)芽網(wǎng)”的在線(xiàn)代碼高亮轉(zhuǎn)換網(wǎng)站。通過(guò)在線(xiàn)程序同樣是向代碼中加入不同的標(biāo)簽,然后定義樣式,如果感興趣可以到發(fā)芽網(wǎng)試試,但每次轉(zhuǎn)換都需打開(kāi)網(wǎng)址操作略顯麻煩,不是本篇介紹的重點(diǎn)。

          今天推薦的是一款本地轉(zhuǎn)換代碼高亮顯示的小工具:CodeRender,本程序是基于 dp.SyntaxHighlighter 寫(xiě)的代碼語(yǔ)法著色的工具。支持的語(yǔ)言有:

          java/xml/sql/jscript/css/cpp/c#/python/vb/perl/php/ruby/delphi。

          可方便用于你的博客中粘貼代碼,只要自定相應(yīng)的樣式 (highlight.css 的內(nèi)容,.Text 支持自定義樣式或在模板里加上語(yǔ)法樣式),然后復(fù)制用這個(gè)工具生成的 HTML 代碼就能讓你的代碼著高亮顯示。 可以加入更多語(yǔ)種的支持,本程序就是在 dp.SyntaxHighlighter 的基礎(chǔ)上擴(kuò)展了對(duì) Perl 語(yǔ)言的支持,網(wǎng)上可以找到相應(yīng)語(yǔ)法的 JS 代碼和 CSS。語(yǔ)言擴(kuò)展支持通過(guò)在 shCore.js 和 highlight.css 加入相應(yīng)代碼即可。

          程序界面

          操作很容易,Source Code 中貼上你要著色的代碼,然后選擇語(yǔ)種,點(diǎn)擊 Render 按鈕就會(huì)在 HTML Code 中生成相應(yīng)的 HTML 代碼,同時(shí)在 HTML Preview 中可以預(yù)覽到效果。

          簡(jiǎn) 要說(shuō)明:Lang 下拉框可以選擇所支持的語(yǔ)法,Options 右邊的 Gutter、Controls、CollapseAll、FirstLine、Columns 是控制生成的額外的元素,逐一點(diǎn)試試就知道了。每個(gè)內(nèi)容顯示(輸入)區(qū)都提供了 Copy/Paste/Clear 快捷操作鏈接,還有一個(gè)總的 Clear 按鈕。

          Copy生成 的HTML 代碼,在日志編輯窗口切換到HTML源代碼編輯模式,粘貼就可以了。

          不過(guò)要想正確顯示代碼高亮還需在WordPress主題中加載樣式文件“highlight.css”(在下載的壓縮包中)

          方法:

          首先,把highlight.css上傳到所使用主題目錄中;

          其次:打開(kāi)header.php,查找:

          <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" />

          在后面添加:

          <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/highlight.css" />

          當(dāng)然,你也可以復(fù)制highlight.css中的所有代碼到你主題style.css中,以上步驟就免了!

          如認(rèn)為默認(rèn)的樣式不符合自己的要求,可以通過(guò)修改“highlight.css”中的樣式改變代碼高亮、邊框、背景等顏色,更個(gè)性化。

          但需要注意的是WordPress會(huì)自動(dòng)把半角符號(hào)替換為全角,別人復(fù)制下來(lái)的函數(shù)代碼標(biāo)點(diǎn)是全角的,無(wú)法使用,切記!

          解決辦法:

          1. 打開(kāi)并編輯 wp-includes/formatting.php 文件,找到以下代碼:
          2. // static strings
          3. $curl = str_replace($static_characters, $static_replacements, $curl);
          4. // regular expressions
          5. $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
          6. 將$curl 開(kāi)頭的兩句代碼注釋掉,如下:
          7. // static strings
          8. //$curl = str_replace($static_characters, $static_replacements, $curl);
          9. // regular expressions
          10. //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

          效果如下:

          PHP:

          CSS:

           

           

          Feedback

          # re: 不用插件實(shí)現(xiàn)WordPress代碼高亮顯示  回復(fù)  更多評(píng)論   

          2012-08-20 00:37 by yrwr
          good!

          # re: 不用插件實(shí)現(xiàn)WordPress代碼高亮顯示  回復(fù)  更多評(píng)論   

          2012-08-20 00:38 by 韓麥斯
          @yrwr
          !!

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 敦化市| 宜兰县| 文化| 新干县| 灵宝市| 保定市| 清水河县| 长泰县| 河间市| 宜都市| 札达县| 左云县| 垫江县| 垣曲县| 穆棱市| 龙陵县| 翁牛特旗| 安丘市| 文成县| 桃江县| 开封市| 铅山县| 昌邑市| 长宁区| 吐鲁番市| 都江堰市| 湘潭县| 扎鲁特旗| 龙胜| 鹤庆县| 兴安县| 青州市| 丰宁| 潞西市| 如皋市| 沙湾县| 乌拉特前旗| 永年县| 永城市| 昭通市| 三穗县|