Text_Highlighterとは?
プログラムなどのシンタックスハイライトをおこなう。
Text_Highlighter 構造
Text_Highlighterには大まかに2つの機能がある。
構文解析(変数とか関数)をしてトークンに分割する機能と、構文解析した結果を出力する機能の2つ。
クライアントは「何の言語」を「どのように出力するか」を決めておく。
利用方法
Text_Highlighter::factory()で各言語ごとのText_Highlighter型のオブジェクトを作成。
Rendererを指定して、出力する。
PHP
<?php// ハイライトするテキスト
$php_string = '<?php echo \'Text/Highlighter\'; ?>';
// PHP用のText_Highlighterを作成
$th_php = Text_Highlighter::factory('PHP');
// HTML出力用のレンダラーをセット
$th_php->setRenderer(new Text_Highlighter_Renderer_Html());
//出力
echo htmlspecialchars($th_php->highlight($php_string), ENT_QUOTES);?>
実行結果
<div class="hl-main"><pre><span class="hl-inlinetags"><?php</span><span class="hl-code"> </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">Text/Highlighter</span><span class="hl-quotes">'</span><span class="hl-code">; </span><span class="hl-inlinetags">?></span></pre></div>
対応言語
対応言語はText/Highlighterを見ればわかる。0.7.3では以下の通り。
- ABAP
- AVRC
- CPP
- CSS
- DIFF
- DTD
- HTML
- JAVA
- JAVASCRIPT
- MYSQL
- PERL
- PHP
- PYTHON
- RUBY
- SH
- SQL
- VBSCRIPT
- XML
出力フォーマット
出力フォーマットはText/Highlighter/Rendererを見ればわかる。0.7.3では以下の通り。
- Array
- BB
- Console
- Html
- HtmlTags
- JSON
- XML