--------------------------------------------------------------------------------
---  HIGHLIGHT MANUAL - Version 2.2-6 ------------------------ NOVEMBER 2004 ---
--------------------------------------------------------------------------------

OSI Certified Open Source Software

English manual: README

--------------------------------------------------------------------------------

Highlight konvertiert Sourcecode in XHTML, HTML, RTF, TeX, LaTeX oder XSL-FO-
Dateien mit Syntaxhervorhebung. Sprachdefinitionen, Farbstile und Einrckungs-
schemata sind konfigurierbar.

INHALT
--------------------------------------------------------------------------------

0.  Schnellstart
1.  Betriebsysteme
2.  Untersttzte Programmier- und Auszeichnungssprachen
3.  Funktionen
4.  Bedienung
5.  Highlight Dateiformat
6.  Neue Sprachdefinition definieren
7.  Neuen Farbstil definieren
8.  Neues Einrckungsschema definieren
9.  Neue Schlsselwortgruppe definieren
10. Konfigurationsdatei
11. Skripte
12. Python binding
13. Kontakt


0.  Schnellstart
--------------------------------------------------------------------------------

Die folgenden Beispiele zeigen die Ausgabe von HTML mit C++ - Highlighting.

- Erzeuge HTML mit separater CSS-Datei:
  highlight -i main.cpp -o main.cpp.html
  oder
  highlight < main.cpp > main.cpp.html -Sc

  Sie werden die HTML-Datei und die CSS-Datei highlight.css im aktuellen
  Verzichnis finden. Falls Sie Eingabe-Umleitung verwenden, muss der Typ der
  Syntax mit -S angegeben werden.

- Erueuge HTML mit eingebetteter CSS Definition und Zeilennummerierung:
  highlight -i main.cpp -o main.cpp.html -I -l

- Erzeuge HTML mit Code-Formatierung im "ANSI" Stil und dem Farbschema "Neon":
  highlight -i main.cpp -o main.cpp.html -F ansi -s neon

- Erzeuge LaTeX:
  highlight -L -i main.cpp -o main.cpp.html

  Andere Ausgabeformate: XHTML (-X), TeX (-T), RTF (-R), XSL-FO (-Y), ANSI (-A).
  HTML ist das Default-Format.

- Definiere ein Ausgabeverzeichnis:
  highlight -O some/target/dir/ *.cpp *.h

Geben Sie highlight --help ein oder lesen Sie Kap. 3, um mehr Details zu erfahren.



1.BETRIEBSSYSTEME
--------------------------------------------------------------------------------

Highlight ist in ISO C++ geschrieben. Es existieren 3 Versionen:
- UNIX Konsolenanwendung
- W32 Konsolenanwendung
- W32 GUI

Der Sourcecode ist mit gcc 3.x, MS Visual .NET und MW Codewarrior8 kompilierbar.


2. UNTERSTTZTE PROGRAMMIER- UND AUSZEICHNUNGSSPRACHEN:
--------------------------------------------------------------------------------

Momentan untersttzt Highlight folgende Programmiersprachen, Auszeichnungs-
sprachen und Konfigurationsdateien:

Action Script, ADA 95, Agda, AMPL, Aspect, Assembler, Amtrix, Avenue, (G)AWK,
Bash, BlitzBasic, BibTex, BMS, C, C++, C#, ClearBasic, Clipper, Cobol, Coldfusion
MX, CSS, DOS-Batch, Eiffel, Erlang, Euphoria, Express, Felix, Fortran, Frink,
Haskell, HTML, httpd.conf, Icon, IDL, INI, IO, Jasmin, Java, JavaScript, JSP,
LaTeX, LDIF, Lisp, Lotos, Lotus Script, Lua, Make,Maya, Matlab, Maple, Modelica,
Modula 3, Nasal, OCaml, (Object) Pascal, Objective C, Paradox, PATROL, Perl,
PHP, Pike, PL/1, PL/SQL, PostScript, POV Ray, Progress, Prolog, Python, Relax
NG Compact, Rexx, RPM Spec, Ruby, Small, SML, SNMPv2, Spin, Squirrel, Sybase,
VHDL, Visual Basic, XML.


3. FUNKTIONEN:
--------------------------------------------------------------------------------

- Hervorhebung von Schlsselwrtern, Typbezeichnern, Strings, Zahlen,
  Escapesequenzen, Symbolen, Direktiven und Kommentaren
- Hervorhebung von selbstdefinierten Schlsselwort-Gruppen
- Konfigurierbare Neuformatierung und Einrckung von C, C++, C# und Java Code
- Automatisches Umbrechen von berlangen Zeilen
- Farbige Ausgabe im HTML-, XHTML-, RTF-, TeX, LaTeX, XSL-FO oder ANSI-Escape -
  Format
- Ausgabe von Zeilennummern
- Speichern der CSS-Definition wahlweise in separater Datei oder innerhalb der
  Ausgabedatei
- Anpassbare Farbstile
- Konvertierung von ASCII Textdateien ohne Highlighting in eines der
  Ausgabeformate


4. BEDIENUNG:
--------------------------------------------------------------------------------

Die deutsche Hilfe wird mit "highlight --help-int=de" aufgerufen:

 BENUTZUNG: highlight [afghlpqrvwzACEILPRTXYVWZ] [-i input file] [-o output file]
                      [-S syntax] [-O outdir] [-b wildcard] [-B wildcard]
                      [-t num] [-c css_outfile] [-e css_infile] [-s CSS_style]
                      [-D new data dir] [-E data dir] [input files]

 -B, --batch-recursive=<wc>     konvertiert alle auf das wildcard passenden Dateien
                                (mit Rekursion)
                                (Beispiel: highlight -b '*.cpp')
 -D, --data-dir=<directory>     setzt Pfad zum Installationsverzeichnis
 -E, --add-data-dir=<directory> setzt zustzlichen Suchpfad zum Inst.-Verzeichnis
 -h, --help                     prints english help
 -H, --help-int=<lang>          gibt Hilfe in angegebener Sprache aus
                                <lang> = ["en", "de", "es", "fr"]
 -i, --input=<file>             Name einer einzelnen Eingabedatei
 -o, --output=<file>            Name einer einzelnen Ausgabedatei
 -O, --outdir=<directory>       Name des Ausgabeverzeichnisses
 -S, --syntax=<type>            gibt den Typ des Quelltextes an
 -v, --verbose                  gibt Debug-Info nach stderr aus
 -p, --list-langs               listet installierte Sprachdefinitionen auf
 -P, --progress                 gibt im Batch-Modus Fortschrittsanzeige aus
 -q, --quiet                    keine Infos ber Fortschritt im Batch-Modus
 -w, --list-themes              listet installierte Themes auf
     --version                  gibt Versionshinweis aus


 Ausgabeformate:

 -A, --ansi                     erzeugt ANSI Terminal-Steuersequenzen
 -L, --latex                    erzeugt LaTeX
 -R, --rtf                      erzeugt RTF
 -T, --tex                      erzeugt TeX
 -X, --xhtml                    erzeugt XHTML 1.1
 -Y, --xsl-fo                   erzeugt XSL-FO (experimentell)
 -Z, --xml                      erzeugt XML

 Ausgabe-Optionen:

 -f, --fragment                 Header und Footer weglassen
 -F, --format-style=<style>     formatiert Ausgabe im angegebenen Stil,
                                <style> = ["ansi", "gnu", "java", "kr", "linux"]
 -l, --linenumbers              gibt Zeilennummern in Ausgabe aus
 -s, --style=<style>            gibt den zu verwendenden Farbstil an (siehe -w)
 -t, --replace-tabs=<num>       ersetzt Tabs durch <num> Leerzeichen
 -V, --wrap-simple              bricht lange Zeilen um, rckt Funktionsparameter
                                und Zuweisungen nicht neu ein
 -W, --wrap                     bricht lange Zeilen um
 -z, --zeroes                   fllt Zeilennummern mit Nullen aus


 (X)HTML -Optionen:

 -a, --anchors                  fgt Anker an Zeilennummerierung an
 -c, --css-outfile=<file>       Name der CSS-Definitionsdatei
 -e, --css-infile=<file>        Datei, die in css-outfile eingefgt werden soll
 -C, --print-index              erzeugt Indexdatei mit Links auf Ausgabedateien
 -I, --include-css              fgt CSS-Definition in Datei ein


 LaTeX output options:

 -r, --replace-quotes           ersetzt Anfhrungszeichen durch \dq{}
                                (setzt -f voraus)

 XSL-FO - Optionen:

 -g, --fop-compatible           erzeugt FO fr Apache FOP (siehe README)

 -i und -o werden ignoriert, falls -B gesetzt ist.
 -t wird ignoriert, falls -F gesetzt ist.
 -r wird ignoriert, falls -f nicht gesetzt ist.
 Wenn keine Ein- oder Ausgabedatei angegeben wird, wird stdin bzw. stdout
 fr Ein- oder Ausgabe benutzt.
 Es wird HTML erzeugt, wenn kein Ausgabeformat angegeben ist.
 CSS-Definitions werden in highlight.css gespeichert, wenn weder -I noch -c
 gesetzt sind.
 Die Neuformatierung der Ausgabe funktioniert nur mit C, C++, C# und Java Code.
 Der automatische Zeilenumbruch (-V, -W) fhrt bei berlangen einzeiligen
 Kommentaren und Direktiven zu fehlerhafter Hervorhebung (vorsichtig einsetzen).


Folgende Aufrufe schreiben den Inhalt von hallo.c nach hallo.html:

highlight -o hallo.html -i hallo.c
highlight -o hallo.html hallo.c
highlight -o hallo.html -S c < hallo.c
highlight -S c < hallo.c > hallo.html

Bei jedem Aufruf wird neben der Ausgabe "hallo.html" auch eine Datei
"highlight.css" ins aktuelle Arbeitsverzeichnis geschrieben.

Highlight bestimmt anhand der Dateiendung den Sourcecode-Typ und ldt die ent-
sprechende Sprachdefinition. Bei einer Python-Datei wird also die Datei
"py.lang" geladen.
Wenn allerdings durch die Shell die Eingabe an highlight umgeleitet wird,
hat das Programm keinen Zugriff auf den Dateinamen und kann deshalb den Typ der
Datei nicht selbst bestimmen. In diesem Fall muss mit --syntax der Typ
mitgegeben werden.

Falls mehrere gebruchliche Endungen fr eine Programmiersprache existieren,
versucht highlight die passende Sprachdefinition zu finden (z.B. C, cpp, cc, h
bei C++ -Sourcecode). Die Zuordnung zwischen Endungen und passender Sprach-
definition befindet sich in /usr/share/highlight/extensions.conf*.

Im Batchmodus speichert Highlight die generierten Dateien unter dem Original-
namen mit der Endung html, xhtml, tex, rtf oder fo ab, je nachdem welches
Ausgabeformat gewhlt wurde. Die Option --quiet verbessert die Verarbeitungs-
geschwindigkeit (empfohlen fr den Einsatz in Skripten).

Beispiel:

highlight -X -B '*.cpp' -O /home/du/html_code/
Konvertiert alle *.cpp Dateien im aktuellen Verzeichnis und in den Unterver-
zeichnissen in XHTML-Dateien, die in /home/du/html_code/ geschrieben werden.

highlight -L  * -O /home/you/latex_code/
konvertiert alle Dateien im LaTeX-Format nach /home/you/latex_code/.


Zur (X)HTML-Ausgabe:
--------------------

HTML wird mit Cascading Style Sheets (CSS) formatiert. Die CSS-Definitionen
knnen entweder in eine externe Datei geschrieben werden, die von den erzeugten
HTML-Dateien referenziert wird, oder direkt in die HTML-Ausgabe eingebunden
werden (Option --include-css). Die Verwendung refenzierter CSS-Dateien hat den
Vorteil, die Formatierung aller HTML-Dateien zentral verwalten zu knnen.
Wird Highlight ohne --include-css aufgerufen, legt es eine Datei highlight.css
im aktuellen Arbeitsverzeichnis ab und fgt einen Verweis "highlight.css" in der
HTML-Ausgabe ein. Mit --css-outfile kann der Name und der Pfad der CSS-Datei
angepasst werden. Mit --css-infile kann eine weitere CSS-Datei angegeben werden,
die in die sptere CSS-Definiton eingefgt wird.
Wenn die --outdir Option gegeben ist, wird die komplette Ausgabe inklusive CSS-
Datei ins angegebene Verzeichnis geschrieben.


Zur XSL-FO - Ausgabe:
---------------------

Die XSL-FO Ausgabe ist experimentell. Das jetzige Ergebnis ist kompatibel zu
Apache FOP bzw. xsltproc/xmlto, aber es gibt noch einige Probleme:

 *xsltproc und xmlto*

 Version xsltproc:
 Using libxml 20604, libxslt 10102 and libexslt 802
 xsltproc was compiled against libxml 20604, libxslt 10102 and libexslt 802
 libxslt 10102 was compiled against libxml 20604
 libexslt 802 was compiled against libxml 20604

 Version xmlto: 0.0.18

 Problem:
 Die erzeugten Dateien sind sehr gro, die Verarbeitung dauert lange.

 *Apache FOP*

 Version: 0.20.5

 Die FO Ausgabe wird mit der --fop-compatible Option an FOP angepasst.

 Problem:
 Die aktuelle FOP Version erzeugt zustzliche Leerzeilen nach Zeilenumbrchen.

 Zitat von der Apache Homepage:
 "Due to a bug in current versions of FOP, setting white-space-collapse='false'
  will also preserve line breaks in the text. Do not rely on this behavior, as
  it is non-conformant and will be changed."


Zur RTF-Ausgabe:
----------------

RTF wird immer mit weier Hintergrundfarbe ausgegeben.


Zur ANSI-Escape-Ausgabe:
------------------------

Mit dem Kommando
highlight -A <inputfile> | less -R
kann man bequem Sourcecode im Terminal anzeigen.
Da es nur wenige Farben zur Ausgabe im Terminal gibt, existiert nur ein hart-
kodiertes Farbschema.


Zur Text-Ausgabe:
-----------------

Wird als Sprachdefinition txt angegeben, findet keine Hervorhebung statt.

Beispiel:

highlight -S txt -L README > readme.tex



5. HIGHLIGHT DATEIFORMAT
--------------------------------------------------------------------------------

Alle Konfigurationsdateien werden als einfache ASCII-Textdateien gespeichert.
Das Format ist einfach gehalten:

$ParameterName=ParameterWert

ParameterName ist der Bezeichner fr den Paramter, ParameterWert ist sein Wert.
Die Bezeichner sind nicht case sensitive.
Der Wert kann aus einem Zeichen oder auch einer Liste von Wrtern bestehen.
Listen knnen in mehrere Zeilen aufgeteilt werden.

Kommentare beginnen mit # als erstem Zeichen in der Zeile.



6. NEUE SPRACHDEFINITION DEFINIEREN:
--------------------------------------------------------------------------------

Eine Sprachdefinitionen ist eine Textdatei, in der Schlsselwrter und Symbole
einer Programmiersprache mehreren Kategorien zugeordnet werden.
Die Datei muss in DATADIR/langDefs/* unter folgendem Namen gespeichert werden:

<bliche Endung der Sourcecodedateien>.lang

Beispiele: PHP -> php.lang, Java -> java.lang

Sollte es mehrere gebruchliche Endungen geben, kann man diese in der Datei
DATADIR/extensions.conf* notieren.

DATEIFORMAT:

# Liste der Schlsselwrter, <class> ist der Name der Schlsselwort-Gruppe
# Die Klasse muss in dem angewandten Farbschema definiert sein, um eine passende
# Hervorhebung zu ermglichen
$KW_LIST(<class>)=<List>

# Prfix, die Schlsselwrter markiert
# Die Klasse muss in dem angewandten Farbschema definiert sein, um eine passende
# Hervorhebung zu ermglichen
$KW_PREFIX(<class>)=<Character>

# Begrenzer fr Schlsselwrter
# Die Klasse muss in dem angewandten Farbschema definiert sein, um eine passende
# Hervorhebung zu ermglichen
$KW_DELIM(<class>)=<open close>

# Tagbegrenzer
# Tags werden wie Schlsselwrter formatiert
$TAG_DELIM(<class>)=<tag_open tag_close>

# Liste der Stringbegrenzer
$STRINGDELIMITERS=<Liste>

# Liste der Escapecharacter innerhalb von Strings (normalerweise \)
$ESCCHAR=<Liste>

# Liste der Escapecharacter ausserhalb von Strings
$ESCCHAR_EXT=<Liste>

# Prfix, die das Hervorheben von Escapesequenzen in "Raw Strings" verhindert
$RAWSTRINGPREFIX=<Character>

# Kommentarbeginn  und -ende beim mehrzeiligen Kommentar
$ML_COMMENT=<Kommentarbeginn  Kommentarende>

# Liste der Bezeichner, die einen einzeiligen Kommentar einleiten
$SL_COMMENT=<Liste>

# Auf true setzen, falls einzeilige Kommentare in Spalte 1 beginnen
$FL_COMMENT=<true / false>

# Einleitender Bezeichner von Compilerdirektiven
$DIRECTIVE=<Praefix>

# Character, der eine Complier-Direktive nach Zeilenumbruch fortsetzt
$CONTINUATIONSYMBOL=<symbol>

# Auf true setzen, falls Sprache reformatiert werden kann (nur C-hnliche
# Sprachen)
$REFORMATTING=<true / false>

# Symbole (z.B. Klammern oder Operatoren)
$SYMBOLS=<Liste>

# Character, die in Schlsselwrtern auftreten knnen
$ALLOWEDCHARS=<character list>

# Falls mehrzeilige Kommentare verschachtelt werden drfen, auf true
# setzen
$ALLOWNESTEDCOMMENTS=<true / false>

# Falls Programmiersprache nicht case-sensitive ist, auf true setzen
$IGNORECASE=<true / false>

# Fge eine andere Sprachdefinition aus dem selben Verzeichnis ein
$INCLUDE=<language definition>


Beim Erstellen neuer Dateien kann man die Schlsselwrter aus Dateien anderer
Programme mit Syntaxhighlighting (z.B VIM, UltraEdit) kopieren.

Beispiel:

#Inhalt von pas.lang (Pascal/Objekt Pascal)

$KW_LIST(kwa)=true false if else then nil maxint case goto label and div downto in
mod not of or packed with do for do repeat while to until procedure function
program begin end const var type unit interface implementation uses private
public

$KW_LIST(kwb)=array boolean char integer file pointer real set string text record

$STRINGDELIMITERS=" '
$SL_COMMENT=//
$ML_COMMENT={ }
$IGNORECASE=true

TIP: Wenn Sie neue Sprachdefinitionen testen wollen und diese nicht im
     Installationsverzeichnis (DATADIR) specihern wollen, knnen Sie mit
     --add-data-dir einen zustzlichen Suchpfad angeben.



7. NEUEN FARBSTIL DEFINIEREN:
--------------------------------------------------------------------------------

Die Farbstile bestehen aus einfachen ASCII-Dateien, in denen man die Format-
eigenschaften der Ausgabe festlegt. Die RTF- Ausgabe ignoriert die Hintergrund-
farbe. Die Dateien mssen mit der Endung .style in DATADIR/themes* gespeichert
werden. Mit der -s Option wird das Farbschema angewandt.

DATEIFORMAT:

# <ColourAttr> = RR GG BB
# RR GG BB steht dabei fr die hexadezimalen Rot/Grn/Blau - Werte, die die
# gewnschte Farbe definieren.
# (Wertebereich: 00 (kein Anteil) - FF (voller Anteil))

# <FormatAttr> = ( <bold> <italic> <underline> )
# Bold, italic und underline sind optional und knnen kombiniert werden.


# Farbe des nicht erkannten Textes
$DEFAULTCOLOUR=<ColourAttr>

# Hintergrundfarbe (ignoriert von RTF Ausgabe)
$BGCOLOUR=<ColourAttr>

# Schriftgrsse
$FONTSIZE=<number>

# Formatierung von Schlsselwrtern, die zu der gleichnamigen Klasse gehren
$KW_CLASS(<class>)=<ColourAttr> ( <FormatAttr> )

# Formatierung von Zahlen
$NUMBER=<ColourAttr> ( <FormatAttr> )

# Formatierung von Escape Character
$ESCAPECHAR=<ColourAttr> ( <FormatAttr> )

# Formatierung von Strings
$STRING=<ColourAttr> ( <FormatAttr> )

# Formatierung von Strings innerhalb von Compilerdirektiven
$STRING_DIRECTIVE=<ColourAttr> ( <FormatAttr> )

# Formatierung von Kommentaren
$COMMENT=<ColourAttr> ( <FormatAttr> )

# Formatierung von einzeiligen Kommentaren (optional, sonst wie $COMMENT)
$SL-COMMENT=<ColourAttr> ( <FormatAttr> )

# Formatierung von Compilerdirektiven
$DIRECTIVE=<ColourAttr> ( <FormatAttr> )

# Formatierung von Symbolen (Klammern etc) (optional, sonst wie $DEFAULTCOLOR)
$SYMBOL=<ColourAttr> ( <FormatAttr> )

# Formatierung von Zeilenummern
$LINE=<ColourAttr> ( <FormatAttr> )


Beispiel:

# golden.style
$DEFAULTCOLOUR=dd bb 00
$BGCOLOUR=00 00 00
$FONTSIZE=10
$KW_CLASS(kwa)=dd bb 00 bold
$KW_CLASS(kwb)=dd bb 00
$NUMBER=ff ff ff
$ESCAPECHAR=ff 00 00
$STRING=ff 00 00
$STRING_DIRECTIVE=ff 00 00
$COMMENT=97 83 45 italic
$DIRECTIVE=ff dd aa
$LINE=97 83 45


8. NEUES EINRCKUNGSSCHEMA DEFINIEREN
--------------------------------------------------------------------------------

Sie knnen die Formatierung und Einrckung selbst anpassen. Um die Formatierung
fr die eingesetzte Programmiersprache zu ermglichen, muss in der Sprach-
definition die Option $REFORMATTING=true gesetzt sein. Beachten Sie, dass der
Artistic Style Parser fr die Verarbeitung von C-hnlicher Syntax ausgelegt ist.
Das neue Schema speichern Sie als *.indent Textdatei in DATADIR/indentSchemes*.
Mit der Option -format-style wird das Schema angewandt.

DATEIFORMAT:

# Behandlung von Klammern:
# "break":  Lse Klammern vom letzten Block (ANSI C/C++ style).
# "attach": Verbinde Klammern mit letztem Block (Java/K&R style).
# "linux":  Lse Klammern von Definitionsblcken, verbinde Klammern mit
#           Kommandoblcken
# "break-closing-headers": Break brackets before closing headers (e.g. 'else',
#                          'catch', ..).  Should be appended to $brackets=attach
#                          or $brackets=linux.
$BRACKETS=<break | attach | linux | break-closing-headers>

# Umschliesse Blcke, Labels und Klassen mit Leerzeilen
# "true": Standardmodus
# "all": Umschliesse auch closing headers (e.g. 'else', 'catch', ...).
$BREAK-BLOCKS=<true | false | all>

# Teile 'else if()' Anweisungen in zwei Zeilen auf
$BREAK-ELSEIFS=<true / false>

# Rcke Blcke inkl. Klammern zustzlich ein
$INDENT-BLOCKS=<true / false>

# Rcke die Blockklammern '{' und '}' zustzlich ein
$INDENT-BRACKETS=<true / false>

# Rcke 'case XXX:' Zeilen ein, so dass sie mit dem zugehrigen Code
# ausgerichtet sind
$INDENT-CASES=<true / false>

# Rcke 'class' -Blcke ein, so dass die inneren 'public:', 'protected:' und
# 'private:' Bezeichner passend zum class-Block ausgerichtet sind.
$INDENT-CLASSES=<true / false>

# Rcke Label um eine Stufe weniger als der umgebende Block ein, anstatt sie
# komplett nach links zu verschieben (default)
$INDENT-LABELS=<true / false>

# Rcke den Inhalt von namespace - Blcken ein.
$INDENT-NAMESPACES=<true / false>

# Rcke mehrzeilige #define Anweisungen ein
INDENT-PREPROCESSOR=<true / false>

# Rcke mit <num> Leereichen pro Einzug ein (Defaultwert: 4)
$INDENT-SPACES=<num>

# Rcke  'switch' Blcke ein, so dass die inneren 'case XXX:' Anweisungen am
# switch - Block ausgerichtet sind.
$INDENT-SWITCHES=<true / false>

# Schalte in den Java-Modus (nur geeignet fr Java Code)
$JAVA-STYLE=<true / false>

# Rcke mehrzeilige Anweisungen in Bezug zur Vorgngerzeile mit max. <num>
# Leerzeichen ein
$MAX-INSTATEMENT-INDENT=<num>

# Rcke mehrzeilige Bedingungen (in einem 'if' oder 'while' Block) mit
# mindestens <num> Leerzeichen ein.
$MIN-CONDITIONAL-INDENT=<num>


# Breche einzelne Codezeilen nicht auf:
# "keep-blocks"    : Lasse einzeilige Codeblcke unverndert.
# "keep-statements": Lasse komplexe Zuweisungen zusammen in einer Zeile stehen
$ONE-LINE=<keep-blocks | keep-statements>

# Umschliesse Symbole mit Leerzeichen:
# "paren": Nur Klammern umschliessen
# "oper":  Nur Operatoren umschliessen
# "all":   Klammern und Operatoren umschliessen
$PAD=<paren | oper | all>


Beispiel:

# K&R indentation scheme
$indent-brackets=false
$indent-spaces=4
$brackets=attach
$indent-classes=false
$indent-switches=false
$indent-namespaces=false

In README_INDENT befinden sich Ausgabebeispiele.


9. NEUE SCHLSSELWORTGRUPPE DEFINIEREN
--------------------------------------------------------------------------------

Sie knnen neue Schlsselwort-Gruppen festlegen und jeder Gruppe eine eigene
Formatierung zuweisen. Das ist ntzlich wenn Sie z.B. Bibliotheksfunktionen,
Makros oder Konstanten gesondert hervorheben mchten.

Eine neue Gruppe wird in zwei Schritten angelegt:

 1. Die Schlsselwort-Gruppe in der Sprachdefinition festlegen:

 Um eine neue Gruppe zu definieren, benutzen Sie einen der folgenden Parameter
 in der Sprachdefinition:

 $KW_LIST(<class>)
 $KW_PREFIX(<class>)
 $KW_DELIM(<class>)
 $TAG_DELIM(<class>)

 Das class-Attribut ist der Bezeichner der neuen Schlsselwort-Gruppe.
 Sie knnen denselben Bezeichner wiederverwenden.

 2. Der Gruppe einen Farbstil im gewnschten Farbschema zuweisen:

 Mit der folgenden Anweisung in der Theme-Datei weisen Sie der Gruppe einen
 Farbstil zu:

 $KW_CLASS(class) = RR GG BB <bold> <italic> <underline>

 Beachten Sie, dass jeder Klassenname, der in einer Sprachdefinition aufgelistet
 ist, auch im verwendeten Farbstil definiert sein sollte.
 Die Klassen "kwa" und "kwb" sind in allen Farbschemen vordefiniert und ersetzen
 die alten hartkodierten Gruppen "keyword" und "type".

Beispiel:

# Some language definition...
$KW_LIST(kwa)=for repeat while [...]
$KW_LIST(debug)=ASSERT DEBUG
$ML_COMMENT=/* */
# ...

# Some colour theme...
$KW_CLASS(kwa)=dd bb 00 bold
$KW_CLASS(debug)=ff 00 00 bold
$COMMENT=97 83 45 italic
# ...


10. KONFIGURATIONSDATEI:
--------------------------------------------------------------------------------

Die Konfigurationdatei wird unter folgendem Pfad gespeichert:

UNIX: $HOME/.highlightrc
W32 : <Pfad der highlight.exe>\highlight.conf

Die Optionen der Datei entsprechen den gleichnamigen langen Kommandozeilen-
optionen. Flags (Optionen ohne Parameter) erwarten true oder false als Wert.

Folgende Optionen werden ausgewertet:

$add-data-dir        $outdir
$anchors             $print-index
$data-dir            $replace-quotes
$css-infile          $rtf
$css-outfile         $quiet
$replace-tabs        $style
$fop-compatible      $tex
$format-style        $verbose
$fragment            $wrap
$include-css         $wrap-simple
$latex               $xhtml
$linenumbers         $xsl-fo
$progress            $zeroes

Beispiel:

$style=emacs
$linenumbers=true
$css-outfile=format.css
$format-style=gnu

Diese Optionen knnen bis auf die Flags von Kommandozeilenparametern ber-
schrieben werden.



11. Skripte
--------------------------------------------------------------------------------

Im /examples Unterverzeichnis der highlight Installation befinden sich einige
Skripte, die Highlight integrieren:

examples/cgi/perl/highlight.cgi

Ein Perl Skript, das HTML erzeugt und ausgibt.

examples/cgi/php/SyntaxHighlighter.php

Ein PHP Wiki Plugin.



12. Python binding
--------------------------------------------------------------------------------

Ein Python 2.3 Binding befindet sich in /examples/python-binding.
Installationshinweise finden Sie in README_PYTHON, Programmierbeispiele in
example.py.



13. Kontakt
--------------------------------------------------------------------------------
Andre Simon
andre.simon1@gmx.de
http://www.andre-simon.de


---
* Das Highlight Installationsverzeichnis DATADIR ist eines der in INSTALL
aufgelisteten Verzeichnisse. Unter Unix lautet der Pfad blicherweise
/usr/share/highlight, unter Windows ist es der Pfad der highlight.exe. Sie knnen
dieses Verzeichnis zur Laufzeit mit --data-dir ndern, oder auch zur Compile-Zeit
auf einen anderen Wert setzen(siehe INSTALL fr nhere Infos).
Highlight erwartet in dem angegebenen Verzeichnis die Unterverzeichnisse
langDefs/, themes/ und indentSchemes/.