出力のカスタマイズ
デフォルトでは、Text_Highlighter
は、入力内容の構文を強調した HTML を作成します。
作成される出力結果を変更し、
xterm のようなカラー対応端末や
less(1) に適した形式とすることも可能です。
そのためには、Text_Highlighter
に対して別のレンダラを使用するように指示します。
<?php
require_once "Text/Highlighter.php";
require_once "Text/Highlighter/Renderer/Console.php";
$hlSQL =& Text_Highlighter::factory("SQL");
$hlSQL->setRenderer(new Text_Highlighter_Renderer_Console);
echo $hlSQL->highlight("SELECT * FROM some_table WHERE id = 12");
?>
HTML レンダラやコンソールレンダラの出力結果をさらにカスタマイズすることも可能です。
その場合は、コンストラクタにオプションの連想配列を渡します。
<?php
require_once "Text/Highlighter.php";
require_once "Text/Highlighter/Renderer/Html.php";
$renderer = new Text_Highlighter_Renderer_Html(array("numbers" => HL_NUMBERS_LI, "tabsize" => 4));
$hlJava =& Text_Highlighter::factory("JAVA");
$hlJava->setRenderer($renderer);
echo $hlJava->highlight('class JavaProgram {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}');
?>
上の例は、HTML レンダラに対してふたつのオプションを指定しています。
まず <ol /> HTML タグを使用して行番号を表示させるようにし、
次に字下げをスペース 4 文字に指定しています。
以下のオプションが使用可能です。
レンダラクラスで使用可能なオプション
名前 |
説明 |
HTML レンダラで使用可能? |
コンソールレンダラで使用可能? |
ヒント |
numbers |
行番号の形式 |
yes |
yes |
コンソールレンダラの場合、このオプションは単に
TRUE あるいは FALSE を指定します。これらはそれぞれ
出力する/出力しない という意味です。HTML レンダラでは、
次の三種類のうちのいずれかを指定します。
HL_NUMBERS_LI は、HTML の
<ol /> タグを使用して行番号を出力します。
HL_NUMBERS_TABLE は、
カラム数が 2 のテーブルを作成します。そして最初のカラムに行番号、
次のカラムにソースコードを出力します。
FALSE を指定すると、HTML レンダラで行番号を出力しなくなります。
|
tabsize |
タブの幅 |
yes |
yes |
|
colors |
追加の色 |
no |
yes |
連想配列形式で、
カラー対応のコンソールにおける追加の色を指定します。
連想配列のキーが色の名前となり、対応するエスケープシーケンス
(例えば \033[1;31mRed) を連想配列の値として指定します。
|