Anpassung der Ausgabe

Normalerweise fügt Text_Highlighter HTML-Code in die ursprüngliche Eingabe ein, um die Hervorhebung um zu setzen.

Andere Ausgabeformate sind aber möglich, z.B. werden auch farb-taugliche Kommandozeilenkonsolen unterstützt wie xterm oder über less(1). Dazu muss Text_Highlighter angewiesen werden einen anderen Renderer zu verwenden:

Den Renderer für die Konsole verwenden

<?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");
?>

Es ist gleichfalls möglich die Ausgabe des HTML- und Konsolen-Renders anzupassen. Dazu kann im Konstruktor des Renderers ein assoziatives Array übergeben werden, dass entsprechende Optionen enthält:

Optionen des HTML-Renderers

<?php
require_once "Text/Highlighter.php";
require_once 
"Text/Highlighter/Renderer/Html.php";

$renderer = new Text_Highlighter_Renderer_Html(array("numbers" => HL_NUMBERS_IL"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!");
    }
}'
);
?>

Das Beispiel setzt zwei Optionen: Die erste bewirkt, dass die Ausgabe Zeilennummern enthält, diese werden über das <ol />-HTML-Tag erzeugt. Die zweite Option definiert, wie viele Leerzeichen für Tabulatoren verwendet werden sollen.

Folgende Optionen werden derzeit unterstützt:

Mögliche Renderer-Optionen
Name Beschreibung Unterstützt vom HTML-Renderer Unterstützt vom Konsolen-Renderer Hinweise
numbers Art der Zeilennummerierung Ja Ja Beim Konsolen-Renderer kennt diese Option lediglich TRUE oder FALSE, um die Zeilennummerierung an- oder abzuschalten. Der HTML-Render akkzeptiert drei verschiedene Werte: bei HL_NUMBERS_LI wird das <ol />-HTML-Tag benutzt; während bei HL_NUMBERS_TABLE eine zweispaltige Tabelle verwendet wird. Die erste Spalte enthält die Zeilennummer, die zweite den Code. Wird die Option auf FALSE gesetzt wird Zeilennummerierung abgeschaltet.
tabsize Tabulator-Weite Ja Ja
colors Zusätzliche Farbdefinitionen Nein Ja Ein assoziatives Array mit zusätzlichen Farbangaben für farbfähige Konsolen. Der Schlüssel eines jeden Array-Eintrages ist der Name der Farbe und der entsprechende Wert muss die Escape-Sequenz beinhalten. (Zum Beispiel: \033[1;31mRed.)