summaryrefslogtreecommitdiff
path: root/support/highlight/README_DE
blob: 4311b871d2797b97db7402f777d339f0f5ef5c2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
-------------------------------------------------------------------------------
---  HIGHLIGHT MANUAL - Version 2.16  -------------------------- Maerz 2010 ---
-------------------------------------------------------------------------------

OSI Certified Open Source Software

English manual: README

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

Highlight konvertiert Sourcecode in XHTML, HTML, RTF, TeX, LaTeX, SVG, BBCode,
XML und Terminal Escape-Sequenzen mit farbiger Syntaxhervorhebung.
Sprachdefinitionen und Farbstile sind konfigurierbar.

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

0.  Schnellstart
1.  Plattformen
2.  Unterstuetzte Programmier- und Auszeichnungssprachen
3.  Funktionen
4.  Ein- und Ausgabe
5.  Highlight Dateiformat
6.  Sprachdefinitionen
7.  Farbstile
8.  Schluesselwortgruppen
9.  Eingebettete Ausgabeanweisungen
10. Konfigurationsdatei
11. Fortgeschrittene Optionen
12. Plugins
13. SWIG Schnittstelle
14. GNU Source-highlight Kompatibilitaet
15. Kontakt



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

Folgende Beispiele zeigen, wie man die hervorgehobene Ausgabe einer C++-Datei
namens main.cpp erzeugt:

- HTML ausgeben:
  highlight -i main.cpp -o main.cpp.html
  highlight < main.cpp > main.cpp.html --syntax cpp

  Sie werden die HTML-Datei und die CSS-Datei highlight.css im aktuellen
  Verzeichnis finden. Falls Sie Eingabe-Umleitung verwenden, geben Sie den Typ
  der Programmiersprache mit --syntax an.

- HTML mit eingebetteter CSS Definition und Zeilennummerierung ausgeben:
  highlight -i main.cpp -o main.cpp.html --include-style --linenumbers

- HTML mit direkter CSS-Formatierung ausgeben:
  highlight -i main.cpp -o main.cpp.html --inline-css

- HTML mit Code-Formatierung im "ANSI" Stil und dem Farbschema "Neon" ausgeben:
  highlight -i main.cpp -o main.cpp.html --reformat ansi --style neon

- LaTeX ausgeben:
  highlight --latex -i main.cpp -o main.cpp.tex

  Andere moegliche Ausgabeformate:
  XHTML (--xhtml), LaTeX (--latex), TeX (--tex), RTF (--rtf), Terminal-Escapecodes
  (--ansi, --xterm256), SVG (--svg), BBCode (--bbcode), XML (--xml).
  HTML ist das Default-Format und wird ausgegeben, wenn kein anderes Format
  angegeben ist.

- Font und Schriftgroesse anpassen:
  highlight --syntax ada --xhtml --font-size 12 --font Verdana
  highlight --syntax ada --latex --font-size tiny --font sffamily

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

Geben Sie "highlight --help" bzw "man highlight" ein, um mehr Details zu
erfahren.



1. PLATTFORMEN
-------------------------------------------------------------------------------

Highlight ist in ISO C++ geschrieben. Es existieren folgende Pakete:
- UNIX Konsolenanwendung
- UNIX GTK GUI
- W32 Konsolenanwendung
- W32 GUI

Auf der Website www.andre-simon.de sind vorkompilierte Pakete fuer weitere
Betriebssysteme verfuegbar (z.B. Debian, Solaris, MacOS X).

Fuer die Pfadangaben in diesem Dokument gilt:
Das Highlight Installationsverzeichnis $HL_DIR ist eines der in INSTALL
aufgelisteten Verzeichnisse. Unter Unix lautet der Pfad ueblicherweise
/usr/share/highlight, unter Windows ist es der Pfad der Datei highlight.exe.
Dieser Pfad kann ueber das makefile (siehe INSTALL) angepasst oder zur
Laufzeit mit --data-dir geaendert werden.
Highlight erwartet in dem angegebenen Verzeichnis die Unterverzeichnisse
langDefs/ und themes/.
Neben $HL_DIR ist $CONF_DIR das Verzeichnis, in dem die Konfigurationsdateien
abgelegt werden (Unix: /etc/highlight/, Windows: Programmpfad).

Die optionale GUI ist nicht in allen vorkompilieretn Paketen enthalten. um
die GUI zu kompilieren, wird das Qt4 devel-Paket benötigt. Siehe INSTALL, um
weitere Informationen zu erhalten.

 

2. UNTERSTUETZTE PROGRAMMIER- UND AUSZEICHNUNGSSPRACHEN:
-------------------------------------------------------------------------------

Die Liste aller unterstuetzten Sprachen befindet sich in README_LANGLIST.
Das Kommando "highlight --list-langs" zeigt eine Liste aller Sprachen und
Dateiendungen.



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

* Hervorhebung von Schluesselwoertern, Typbezeichnern, Strings, Zahlen,
  Escapesequenzen, Symbolen, Direktiven und Kommentaren
* Unterstuetzt selbstdefinierte Schluesselwort-Gruppen, die mit regulaeren
  Ausdruecken beschrieben werden koennen
* Erkennung eingebetteter Sprachen innerhalb einer Datei
* Farbige Ausgabe in HTML, XHTML, RTF, TeX, LaTeX, SVG, BBCode, Terminal-
  Escapesequenzen und XML
* Konfigurierbare Neuformatierung und Einrueckung von C, C++, C# und Java Code
* Umbrechen von ueberlangen Zeilen
* Ausgabe von Zeilennummern
* Speichern von Stylesheets wahlweise in separater Datei oder innerhalb der
  Ausgabedatei (HTML, LaTeX, TeX, SVG)
* Anpassbare Farbstile
* Rekursive Konvertierung von Verzeichnissen



4. EIN- UND AUSGABE:
-------------------------------------------------------------------------------

Neben der Angabe von Ein- und Ausgabedateien mit -i und -o, kann auch stdin bzw.
stdout benutzt werden.
Wenn kein Dateiname mit --input bzw. --output angegeben wird, benutzt highlight
stdin bzw. stdout fuer die Ein- und Ausgabe.
Werden mehrere Eingabedateien angegeben, wechselt highlight in den Batch-Modus.

Wird die Eingabedatei nicht direkt auf der Kommandozeile als Argument bzw. mit
--input angegeben, kann Highlight die passende Sprachinformation nicht
automatisch anhand der Dateiendung bestimmen. Lediglich einige Skriptsprachen
werden anhand des Shebangs in der ersten Zeile erkannt.
Mit der Option --syntax muss dann der Typ der Datei vom Benutzer angegeben
werden (das Argument ist normalerweise die fuer die Programmiersprache uebliche
Dateierweiterung).
Beispiel: Wenn Sie eine Python-Datei konvertieren wollen, muss highlight die
Sprachdefinition py.lang einlesen. Das korrekte Argument fuer --syntax ist
also "py".

highlight test.java                   # Option --syntax nicht noetig
highlight < test.java --syntax java   # --syntax muss angegeben werden
cat test.java | highlight --syntax java

Sollte es mehrere Dateierweiterungen fuer Dateien einer Programmiersprache
geben (wie z.B. C, cc, cpp, h bei C++), werden diese in der Datei
$CONF_DIR/filetypes.conf einer Sprachdefinition zugewiesen.

Wenn mehrere Eingabedateien an Highlight uebergeben werden oder die Option
--batch-recursive (-B) gesetzt ist, wechselt das Tool in den Batch-Modus.
In diesem Modus werden die Ausgabedateien unter dem Namen der Eingabedateien
gespeichert, lediglich die Dateierweiterung des gewaehlten Ausgabeformats
wird angehangen.
Die --outdir Option ist im Batch Modus besonders nuetzlich. In Skripten sollte
--quiet angegeben werden, um die Geschwindigkeit der Verarbeitung zu erhoehen.


HTML, TeX, LaTeX und SVG Ausgabe:
--------------------------------

Die HTML, TeX, LaTeX und SVG-Formate erlauben die Einbindung von externen Dateien,
welche die Formatierungsinformationen enthalten ("Stylesheet-Dateien").

Bei der HTML- und SVG-Ausgabe enthaelt diese Datei CSS-Definitionen und wird, wenn
nicht anders angegeben, als "highlight.css" gespeichert.

Bei TeX und LaTeX enthaelt die Datei Makros, und wird per Default als
"highlight.sty" gespeichert.

Name und Pfad des Stylesheets werden mit --style-outfile bestimmt.
Wenn --outdir definiert ist, wird auch das Stylesheet im angegebenen
Ausgabeverzeichnis gespeichert.

Mit --include-style fuegt Highlight die Formatierungsangaben direkt in die
Ausgabedokumente ein, statt einen Verweis auf externe Stylesheets zu setzen.

Der Verweis auf externe Dateien hat den Vorteil, die Formatierung an einer
zentralen Stelle zu verwalten, auf die die Ausgabedokumente verweisen.

Wenn UTF-8 Dateien mit LaTeX verabeitet werden sollen, sollte das Paket ucs
installiert werden.

Mit --style-infile kann eine Datei mit zusaetzlichen Formatierungsangaben in
die Ausgabedateien eingebunden werden, welche die vorgegebene highlight-
Formatierung erweitert oder ersetzt.

Beispiel:

/* Inhalt von user.css (fuege Rahmen und Line an der Zeilennummerierung
hinzu) */
pre.hl {
  border-width: 1px;
  border-style:solid;
  border-left-color: silver;
  border-top-color: silver;
  border-right-color: gray;
  border-bottom-color: gray;
  padding: 0.5cm;
  margin: 2cm;
}
.hl.line {
  /* background-color:#EEEEEE;  color:#505050; */
  border-right:1px solid #555555;
  font-style:normal;
  font-weight:normal;
  padding:1px;
  text-decoration:none;
}

Usage: highlight -l --style-infile user.css main.cpp


Terminal-Ausgabe:
--------------------

highlight --ansi <inputfile> | less -R
highlight --xterm256 <inputfile> | less -R

zeigt farbigen Sourcecode direkt im Terminal an.

Da es nur wenige Farben zur ANSI-Ausgabe im Terminal gibt, existiert nur ein
hartkodiertes Farbschema fuer --ansi. Daher sollte nach Moeglichkeit --xterm256
verwendet werden, um eine Ausgabe in 256 Farben zu erhalten. Der 256 Farb-Modus
wird z.B. von den aktuellen Versionen von xterm, rxvt und Putty untersttzt.


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

Wird als Sprachdefinition txt angegeben, findet keine Syntaxhervorhebung statt.

Beispiel:

highlight -S txt -L README > readme.tex


Beispiele:
----------

Die folgenden Kommandos schreiben den Inhalt von hello.c nach hello.html:

highlight -o hello.html -i hello.c
highlight -o hello.html hello.c
highlight -o hello.html --syntax c < hello.c
highlight --syntax c < hello.c > hello.html

Neben hello.html wird highlight.css im aktuellen Verzeichnis erzeugt.

highlight -X  --batch-recursive '*.cpp' --outdir /home/you/html_code/
Dieses Kommando konvertiert alle *.cpp Dateien im aktuellen Verzeichnis und den
Unterverzeichnissen in XHTML-Dateien, und speichert die Ausgabe in
/home/you/html_code.

highlight hello.c --mark-line="5=Initialize some stuff; 15; 21=Log result"
Dieses Kommando markiert die Zeilen 5, 15 und 21 in der HTML Ausgabe.
Die Zeilen 5 und 21 werden einen Tooltip mit den angegebenen Texten anzeigen.

highlight -L  * --outdir /home/you/latex_code/
Dieses Kommando konvertiert alle Dateien in LaTeX, und speichert sie in
/home/you/latex_code/.

highlight -c stdout -s seashell --print-style
Dieses Kommando gibt nur die CSS-Informationen des angegebenen Stils (hier:
Seashell) nach stdout aus.



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

Alle Konfigurationsdateien werden als ASCII-Textdateien gespeichert.

Format: $ParameterName=ParameterWert

ParameterName ist der Bezeichner fuer den Paramter, ParameterWert ist sein Wert.
Die Bezeichner sind nicht case sensitive.
Der Wert besteht aus einem Zeichen, einer Liste von Woertern oder einem regulaeren
Ausdruck.
Listen koennen in mehrere Zeilen aufgeteilt sein.

Kommentare beginnen mit # als erstem Zeichen der Zeile.



6. SPRACHDEFINITIONEN
-------------------------------------------------------------------------------

Eine Sprachdefinition beschreibt die Elemente einer Programmiersprache, die
durch verschiedene Farben und Schrifttypen hervorgehoben werden.
Die Datei muss in $HL_DIR/langDefs/ (siehe Abschnitt 1) unter folgendem Namen
gespeichert werden:

<ueliche Erweiterung der Sourcecodedateien>.lang

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

Sollte es mehrere gebrauechliche Erweiterungen geben, werden diese in der Datei
$HL_DIR/filetypes.conf einer Sprachdefinition zugeordnet.

DATEIFORMAT:

# Regulaerer Ausdruck, der Zahl-Literale beschreibt
# Default: (?:0x|0X)[0-9a-fA-F]+|\d*[\.]?\d+(?:[eE][\-\+]\\d+)?[lLuU]?
$DIGIT=regex(<RE>)

# Regulaerer Ausdruck, der gueltige Bezeichner beschreibt
# Default: [a-zA-Z_]\w*
$IDENTIFIER=regex(<RE>)

# Liste von Schluesselwoertern, <group> ist der Name der Schluesselwort-Gruppe
# Die Gruppe muss in dem angewandten Farbschema definiert sein, um eine passende
# Hervorhebung zu ermoeglichen
$KEYWORDS(<group>)=<List>

# Regulaerer Ausdruck, der Schluesselwoerter beschreibt.
# Wenn die Regex mehrere Gruppen enthaelt, kann GROUP-NUM angegeben werden.
# Dieser Parameter gibt die Nummer der Gruppe an, deren Match als Schluesselwort
# hervorgehoben werden soll (gezaehlt wird von links nach rechts).
# Der Capturing-Status der Gruppen spielt bei der Zaehlung keine Rolle.
# Gueltige Indexwerte: 0 <= GROUP-NUM <= hoechster Gruppen-Index
#                      0 entspricht dem kompletten Match der Regex
# Wenn GROUP-NUM nicht angegeben ist, wird der Match der hoechsten Gruppen-
# Nummer ausgewertet.
$KEYWORDS(<group>)=regex(<RE> <, GROUP-NUM>)

# Liste der Stringbegrenzer
$STRINGDELIMITERS=<Liste>

# Liste von ungleichen Stringbegrenzern
$STRING_UNEQUAL=<Beginn Ende>

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

# Escapesequenzen ausserhalb von Strings erlauben
$ALLOWEXTESCAPE=<true|false>

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

# Kommentarbeginn und -ende beim mehrzeiligen Kommentar
# Kommentarende ist optional, wenn $ALLOWNESTEDCOMMENTS false ist
$ML_COMMENT=<Kommentarbeginn  Kommentarende>

# Liste der Bezeichner, die einen einzeiligen Kommentar einleiten
$SL_COMMENT=<Liste> | regex(<RE>)

# Praefix von Compilerdirektiven
$DIRECTIVE=<Praefix> | regex(<RE>)

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

# Sprache kann formatiert werden
# (nur C-aehnliche Sprachen, die mit astyle (astyle.sf.net) kompatibel sind)
$REFORMATTING=<true | false>

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

# Mehrzeilige Kommentare koennen verschachtelt sein
$ALLOWNESTEDCOMMENTS=<true | false>

# Programmiersprache ist case-sensitive
$IGNORECASE=<true | false>

# Fuege eine weitere Sprachdefinition ein
$INCLUDE=<language>

# Definiere die begrenzenden Ausdruecke der eingebetteten Sprache "language".
# Es kann fuer jede Sprache mehrere Eintraege geben.
$NESTED(language)=regex(<RE open>) regex(<RE close>)

In der Datei README_REGEX finden Sie detaillierte Informationen zu regulaeren
Ausdruecken.

Beispiel:
---------

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

$KEYWORDS(kwa)= absolute abstract and array as asm assembler automated begin case
cdecl class const constructor destructor dispid dispinterface div do downto
# [...]
$KEYWORDS(kwb)=boolean char integer pointer real text
true false cardinal longint byte word single double int64
$KEYWORDS(kwc)=if else then downto do for repeat while to until with
$KEYWORDS(kwd)=regex((\w+?)\s*\()
$STRINGDELIMITERS=" '
$SL_COMMENT=//
$ML_COMMENT={ } (* *)
$IGNORECASE=true
$SYMBOLS= ( ) [ ] , ; : & | < > !  = / * %  + - @
$ESCCHAR=#
$ALLOWEXTESCAPE=true

TIP: Wenn Sie neue Sprachdefinitionen testen wollen und diese nicht im
     Installationsverzeichnis ($HL_DIR) speichern moechten bzw. keine Berechtigung
     dazu haben, koennen Sie mit --add-data-dir einen zusaetzlichen Suchpfad
     angeben und die Dateien dort in dem Verzeichnis ./langDefs ablegen.



7. FARBSTILE
-------------------------------------------------------------------------------

Farbstile legen die Formatierung der Sprachelemente fest, die in den Sprach-
definitionen beschrieben wurden.

Die Dateien muessen mit der Endung .style in $HL_DIR/themes (siehe Abschnitt 1)
gespeichert werden. Mit der --style (-s) Option wird das Farbschema angewandt.

DATEIFORMAT:

<Colour> = #RRGGBB

RR GG BB steht dabei fuer die hexadezimalen Rot/Gruen/Blau-Anteile der
gewnschten Farbe. Wertebereich: 00 (kein Anteil) - FF (voller Anteil)

<Format> = <bold> <italic> <underline>
Bold, italic und underline sind optional und koennen kombiniert werden.

# Default-Textfarbe
$DEFAULTCOLOUR=<Colour>

# Hintergrundfarbe
$BGCOLOUR=<Colour>

# Schriftgroesse
$FONTSIZE=<number>

# Formatierung von Schluesselwoertern, die zu der gleichnamigen Gruppe gehoeren
$KW-GROUP(<group>)=<Colour> <Format>

# Formatierung von Zahlen
$NUMBER=<Colour> <Format>

# Formatierung von Escape Charactern
$ESCAPECHAR=<Colour> <Format>

# Formatierung von Strings
$STRING=<Colour> <Format>

# Formatierung von Kommentaren
$COMMENT=<Colour> <Format>

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

# Formatierung von Compilerdirektiven
$DIRECTIVE=<Colour> <Format>

# Formatierung von Strings innerhalb von Compilerdirektiven
$STRING-DIRECTIVE=<Colour> <Format>

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

# Formatierung von Zeilennummern
$LINE=<Colour> <Format>

# Hintergrundfarbe von markierten Zeilen
$MARK-LINE=<Colour>


Beispiel:

# golden.style
$DEFAULTCOLOUR=#ddbb00
$BGCOLOUR=#000000
$FONTSIZE=10
$KW-GROUP(kwa)=#ffed8a bold
$KW-GROUP(kwb)=#ffed8a
$KW-GROUP(kwc)=#dedede bold
$KW-GROUP(kwd)=#ddbb00 bold
$NUMBER=#ffffff
$ESCAPECHAR=#ff0000
$STRING=#ff0000
$STRING-DIRECTIVE=#ff0000
$COMMENT=#978345 italic
$DIRECTIVE=#ffddaa
$LINE=#898989
$SYMBOL=#ababab
$MARK-LINE=#404040



8. SCHLUESSELWORTGRUPPEN
-------------------------------------------------------------------------------

Sie koennen mehrere Schluesselwort-Gruppen festlegen und jeder Gruppe eine eigene
Formatierung zuweisen. Das ist nuetzlich wenn Sie z.B. Bibliotheksfunktionen,
Makros oder Konstanten gesondert hervorheben moechten.

Eine Gruppe wird in zwei Schritten definiert:

 1. Die Schluesselwort-Gruppe wird mit folgendem Parameter in der
    Sprachdefinition festgelegt:

    $KEYWORDS(group)

 Das group-Attribut ist der Bezeichner der neuen Schluesselwort-Gruppe.
 Sie koennen Bezeichner mehrmals verwenden.

 2. Der Gruppe eine Formatierung im gewuenschten Farbschema zuweisen:

    $KW-GROUP(group) = #RRGGBB <bold> <italic> <underline>

Beachten Sie, dass jeder Gruppenname, der in einer Sprachdefinition aufgelistet
ist, auch im verwendeten Farbschema definiert sein sollte.
Die Klassen "kwa"-"kwd" sind in allen mitgelieferten Farbschemen vordefiniert.

Beispiel:

# Some language definition with new group "debug"...
$KEYWORDS(kwa)=for repeat while [...]
$KEYWORDS(debug)=ASSERT DEBUG
$ML_COMMENT=/* */
# ...

# Some colour theme...
$KW-GROUP(kwa)=#ddbb00 bold
$KW-GROUP(debug)=#ff0000 bold
$COMMENT=#978345 italic
# ...



9. EINGEBETTETE AUSGABEANWEISUNGEN
-------------------------------------------------------------------------------

Wenn highlight innerhalb eines Zeilenkommentars der Eingabedatei die
Zeichenfolge @highlight findet, wird der Inhalt der Zeile wie folgt behandelt:
Die Daten hinter @highlight werden in die Ausgabe kopiert, ohne Symbole des
Ausgabeformats zu maskieren. So koennen HTML Tags oder LaTeX Kommandos eingesetzt
werden, ohne externe Skripte einsetzen zu muessen. Ausserdem koennen mit folgenden
Variablen Zusatzinformationen ausgegeben werden:

$infile:    Pfad Eingabedatei
$outfile:   Pfad Ausgabedatei
$font-face: Fontname
$font-size: Schriftgroesse
$theme:     Pfad Themedatei
$title:     Titel des Dokuments
$encoding:  Encoding
$linenum:   Zeilennummer
$nl:        Zeilenumbruch

Die Kommentarzeile wird nicht als Kommentar hervorgehoben ausgegeben, und der
Zeilenzaehler wird nicht erhoeht.
Eingebettete Anweisungen werden nur in einzeiligen Kommentaren erkannt, nicht
in mehrzeiligen Kommentaren.

Beispiel:

Die folgende Kommentarzeile ist in main.cpp enthalten:

//@highlight <h1>$title</h1><br>Filename: $infile $nl

highlight main.cpp --doc-title=Masterpiece

Dieses Kommando erzeugt folgende HTML Ausgabe:

<h1>Masterpiece</h1><br>Filename: main.cpp



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.


Beispiel:

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



11. FORTGESCHRITTENE OPTIONEN
-------------------------------------------------------------------------------

Exuberant Ctags Informationen hinzufuegen

Die HTML-Ausgabe kann um beschreibende Tooltips mit ctags Daten erweitert werden:
ctags *.*
highlight --ctags-file *.cpp

Der Default-Parameter von ctags-file ist "tags", daher konnte er im obigen 
Beispiel weggelassen werden.
Dises Kommando fuegt den Typ, den Namespace und den Pfad zur Definition des
erkannten Tokens hinzu.
Beispiel:  "member | class:highlight::HtmlGenerator | htmlgenerator.h"


Markierung von Zeilen

Bei der HTML-Ausgabe können einzelne Zeilen durch eine andere Hintergrundfarbe
hervorgehoben werden. Ein Tooltip kann erklaerende Informationen zu diesem Code-
Abschnitt anzeigen.

highlight --mark-line='3;10,21' -l main.cpp
Dieses Kommando markiert die Zeilen 3, 10 und 21.

highlight --mark-line='5;10=Getter and setter definitions' -l main.cpp
Dieses Kommando markiert die Zeilen 5 und 10. Zeile 10 enthaelt zudem einen 
Tooltip mit dem Inhalt "Getter and setter definitions".


Parsen von Binaerdaten vermeiden

Wenn highlight mit einer unbestimmten Menge von Eingabedaten aufgerufen wird,
kann die Verarbeitung von binaeren Daten mit --validate-input verhindert werden.
Dieser Schalter fuehrt zu einem Vergleich der Datei-Haeder mit einer Liste von
"Magic Numbers". Wenn ein Binaer-Typ erkannt wird, bricht highlight die 
Verarbeitungmit einer Fehlermeldung ab.


Hervorbung von eingebettetem Code ohne oeffnenden Delimiter

Wenn eine Datei mit eingebettetem Code ohne den einleitenden Delimiter beginnt,
kann mit der --start-nested Option in diese Sprache gewechselt werden.
Dies kann bei LuaTeX Dateien passieren:
highlight luatex.tex --latex -t4 -semacs --start-nested=inc_luatex

Die inc_luatex Definition ist eine Lua-Beschreibung mit TeX Kommentaren.
Beachten Sie, dass die Code-Sektion mit dem in der Host-Beschreibung 
aufgelisteten End-Delimiter abgeschlossen werden muss.



12. PLUGINS
-------------------------------------------------------------------------------

Im /examples Unterverzeichnis der highlight Installation befinden sich einige
Plugins, die Highlight in Webanwendungen integrieren:

-DokuWiki
-MovableType
-Wordpress
-Serendipity



13. SWIG SCHNITTSTELLE
-------------------------------------------------------------------------------

Eine SWIG Interface-Datei befindet sich in /examples/swig.
Installationshinweise finden Sie in README_SWIG, Programmierbeispiele in
den vorhandenen Skripten.



14. GNU SOURCE-HIGHLIGHT KOMPATIBILITAET
-------------------------------------------------------------------------------

Die Kommandozeilenschnittstelle ueberschneidet sich zu einem grossen Teil mit
source-highlight (http://www.gnu.org/software/src-highlite/).

Diese highlight-Optionen haben dieselbe Bedeutung wie bei source-highlight:
 --input, --output, --help, --version, --out-format, --title, --data-dir,
 --verbose, --quiet, --ctags-file

Diese Optionen wurden hinzugefuegt, um die Kompatibilitaet zu verbessern:
 --css, --doc, --failsafe, --line-number, --line-number-ref, --no-doc, --tab,
 --output-dir, --src-lang

Die obigen Optionen bilden eine gemeinsame Highlighter-Schnittstelle fuer
Skripte, Plugins etc.



15. KONTAKT
-------------------------------------------------------------------------------
Andre Simon
andre.simon1@gmx.de
as@andre-simon.de
http://www.andre-simon.de
http://wiki.andre-simon.de/

Wegen wiederholtem Spamming ist das Wiki passwortgeschuetzt.
Der Zugang lautet: user, Password h1gHL1te