HOME > > > >

PEAR::Text_Highlighter

Text_Highlighterとは?

プログラムなどのシンタックスハイライトをおこなう。

Text_Highlighter 構造

Text_Highlighterには大まかに2つの機能がある。 構文解析(変数とか関数)をしてトークンに分割する機能と、構文解析した結果を出力する機能の2つ。

クライアントは「何の言語」を「どのように出力するか」を決めておく。

利用方法

Text_Highlighter::factory()で各言語ごとのText_Highlighter型のオブジェクトを作成。 Rendererを指定して、出力する。

PHP

  1. <?php// ハイライトするテキスト
  2. $php_string = '<?php echo \'Text/Highlighter\'; ?>';
  3.  
  4. // PHP用のText_Highlighterを作成
  5. $th_php = Text_Highlighter::factory('PHP');
  6.  
  7. // HTML出力用のレンダラーをセット
  8. $th_php->setRenderer(new Text_Highlighter_Renderer_Html());
  9.  
  10. //出力
  11. echo htmlspecialchars($th_php->highlight($php_string), ENT_QUOTES);?>
実行結果
<div class="hl-main"><pre><span class="hl-inlinetags">&lt;?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">?&gt;</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