-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2009年10月13日

ソースコードのシンタックスハイライトGeSHi

JavaScriptを使ったシンタックスハイライトは、けっこう種類もあるようですが、このGeSHiはPHPを使ったスクリプトのようです。
http://www.phppro.jp/phptips/archives/vol31/2
を参考に使ってみたのですが、これは古いバージョンの使い方みたいでした。初めに最新のバージョンのものをダウンロードしたのですが、ファイルの構成自体が変わっているようで、メインとなるgeshi.phpというファイルすら存在しませんでした。

 PHPを使ったこと自体ずいぶん久しぶりで、長い間インストールもしていません。手持ちの環境にPHPは入れてないのですが、さくらインターネットのサーバでは、初めから使えるようになっていたので、簡単なスクリプトを作りそれで試してみました。
<span style="color: #808080; font-style: italic;">#!/usr/local/bin/php -q</span>
<span style="color: #000000; font-weight: bold;"><?php</span>
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$argv</span><span style="color: #66cc66;">[</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">]</span>;
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\n</span>を処理します。<span style="color: #000099; font-weight: bold;">\n</span>"</span>;
 
    <span style="color: #b1b100;">require_once</span> <span style="color: #ff0000;">"/home/hirono-hideki-01//apps/geshi/geshi.php"</span>;
    <span style="color: #0000ff;">$source</span> = <a href="http://www.php.net/file_get_contents"><span style="color: #000066;">file_get_contents</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$argv</span><span style="color: #66cc66;">[</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span>;
 
    <span style="color: #0000ff;">$geshi</span> = <span style="color: #000000; font-weight: bold;">new</span> GeSHi<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$source</span>, <span style="color: #ff0000;">"bash"</span><span style="color: #66cc66;">)</span>;
 
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$geshi</span>-><span style="color: #006600;">parse_code</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?></span>
 
 
 コマンドラインで実行し、引数に変換対象となるファイルを一つ指定しています。処理結果は標準出力への表示になります。さくらのサーバはPHPの環境が整っているのか、手を加えずに使えました。その点、Rubyではライブラリの追加も多く、それでも不便があったので、自前でソースファイルをコンパイルしてインストールし、そちらを使うようにしました。
 "bash”の部分を、argv[2]とすることで、変換のフォーマット形式を第2引数でしてすることが出来ます。GeSHiはプログラム言語のフォーマットの種類がとても多いそうです。


Powered by ScribeFire.

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32898337

この記事へのトラックバック