PHP Hilight String
コードを色分けしつつ、行番号付きで表示も可能なプラグインです。
WP 1.5.Xから2.0.X系で動作します。
色分け可能な言語
- ‘php’
- ‘cpp’,
- ‘css’
- ‘diff’
- ‘dtd’
- ‘javascript’
- ‘mysql’
- ‘perl’
- ‘python’
- ‘ruby’
- ’sql’
- ‘xml’
- ‘java’
Sorry
ハイライトするエンジンにPEAR::Text_Highlighterを利用したため、pluginsディレクトリにポン付けというお手軽さがスポイルされてしまっています。
。
- PEARを利用できないサーバーでは動かないかもしれません。(一応救済策を施してあるんですが・・・すべての環境を検証できるわけもなく・・・)
- ハイライトするときのタグの仕様を変えていますので、従来と互換がありません。
- PEAR::Text_Highlighterそのものを、行番号途中表示を可能にするため独自に拡張してしまっているので、オリジナルのPEAR::Text_Highlighterでは動きません。
Install
pluginsディレクトリの直下に「phphlstring」ディレクトリを作成します。
ダウンロードしたphp_hl_string.0.9.9.zipを解凍して、「php_hl_string.php」を「phphlstring」ディレクトリにアップロードし、パーミッションを適切に設定します。
さらに解凍して得られた「PEAR」ディレクトリ以下すべてを「phphlstring」ディレクトリ直下にアップロードして、パーミッションを適切に設定します。
・・・wp-dir・・・\plugins\phphlstring\PEAR\Text\Highlighter\Renderer
Pluginsディレクトリ以下のディレクトリ構成は上記のような形になります。
同梱されているhighlight.cssをstyle.cssに追加します。ハイライトされる色のカスタマイズは、このCSSを編集して行ってください。
管理画面から、PHP Highlight Stringを有効化します。
Ver.0.1.2以前からのアップデート
管理画面から、PHP Highlight Stringを無効化してください。
Pluginsディレクトリにあるphp_hl_string.phpを削除してください。
Installの手順に従って新しいバージョンのPHP Highlight Stringを導入してください。
使い方
行番号不要時
ハイライトしたいコード部分を
[code lang=”言語”]コード[/code]というBBCode風のタグで囲います。
言語部分は、Updateの部分を参照してください。ただし、必ず小文字で記述しないといけません。
。
行番号付与時
[code lang=”言語” -数字]コード[/code]と、言語指定の後に「-5」等のように始めたい行番号を記述します。
明示的に「0」を指定した場合は、行番号は表示されません。
ハイライト不要時
[code]コード[/code]で括ります。ハイライトしませんが、コードは入力したイメージを元に、きちんと整形されます。
phpコードの場合
言語として「php」を指定した場合、コードは必ず< ?phpで始まり、?>で終わらないといけません。これらがないとハイライトされません。
PEARに関して
PEARはPerlのCPANのようなもので、PHPのライブラリです。拡張モジュールや様々なアプリケーションが登録されています。「ペアー」と読むようですね。
Linuxであれば、大抵のサーバーには導入されているはずです。
ご本尊はこちらです。
本プラグインで利用しているText_Highlighterの最新版はVer.0.6.6です。
ただし、行番号を「途中から表示する」ことに関しては全く考慮されていないためちょっとカスタムしています。
よって、PEAR ProjectからダウンロードしたText_Highlighterでは動作しません。必ず、プラグインに同梱されたものをインストールしてください。
PEARのライブラリを使うと、かなりいろいろなことがやれそうです。
Special Thanks!
PEAR::Text_Highlighter(http://pear.php.net/package/Text_Highlighter)という優れたパッケージとPEARというプロジェクトの存在はPHPにとって、非常に重要かつ有益なプロジェクトであると感じます。
行番号途中表示という、きわめて実用的なアイディアをご提供下さりプラグインに取り入れることを快く許諾してくださった「ひろまさ」氏(http://hiromasa.zone.ne.jp/)にこの場を借りてお礼を申し上げます。