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.)
Verwendung (Previous) Text_LanguageDetect (Next)
Last updated: Sun, 19 Dec 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: Axeia
Note that this package uses css classesB for syntax highlighting but does not by default do anything to include a stylesheet with these classes defined.

This means that if you use the default options it will give back normal looking plain text, if you're using the line-numbering option it wont even be indented (uses a <ol> instead of <pre> to PREserve whitespace)

So in the HTML you're outputting it to you may want to include the sample.css stylesheet that's in the package.

e.g. in the <head> section of your file use
<link rel="stylesheet" type="text/css" href="sample.css" />
(if the sample.css file has been placed in the same directory as the file outputting the text - but that's basic HTML knowledge which I assume everyone interested in this is familiar with).

Going by the bugtracker a future release should allow different highlighting on a per language base by assigning the container element a class based on the used language.
e.g.
.hl-java .hl-string{ color: purple; /*Only java gets purple colored strings.*/ }