src2html Anleitung

Einleitung

Mit src2html kann ein Chill- oder C-Sourcecode so aufbereitet werden, das er mit einem HTML-Browser angezeigt werden kann.

Vorhandene Funktionen

Einschränkungen

Mitgelieferte Dateien

Es gibt 3 INI-Files: sowie eine Javascript Datei Diese Dateien sind nicht notwendig, solange man mit den vorhandenen Default Einstellungen zufrieden ist.

Die Default Werte werden verwendet, falls eine Datei nicht gefunden wird. In den mitgelieferten Dateien stehen alle Default Werte drin. Solange diese Dateien nicht verändert werden, kann man sie also auch weglassen.

Bei den anderen Dateien werden leere Dateien angenommen, falls eine Datei nicht gefunden wird.

Starten von src2html

src2html [Path]Sourcefile [[Path]Targetfile]

Versteckte Unix Files/Verzeichnisse (.Dateien) werden als Parameter nicht unterstützt. Das Targetfile bekommt immer die Erweiterung .htm

Bei der Windows Version muss src2html in einem DOS Fenster gestartet werden. Eine Oberfläche gibt es bisher leider nicht.

Falls INI-Files verwendet werden sollen, so muss vor dem Aufruf von src2html erst in das Verzeichnis gewechselt werden, wo die INI-Files gespeichert sind. Dadurch ist es möglich, verschiedene INI-Files zu halten und einfach durch wechseln des Verzeichnisses diese auszuwählen.

Farben anpassen

In der Datei src2html.ini sind (fast) alle HTML-Befehle die in den Source eingefügt werden sollen eingetragen. Daher ist es leicht möglich Änderungen vorzunehmen, wobei auch die Schriftart oder was sonst noch mit HTML machbar ist eingetragen werden kann. Hierzu eine kurze Erklärung zu den einzelnen Zeilen der Datei src2html.ini:

Alle Zeilen die in der 1. Spalte ein Semikolon ; haben sind Kommentar und werden nicht ausgewertet. Die einzelnen Arten von Markierungen sind durchnummeriert. Diese Nummern werden von src2html zum Zuordnen verwendet, aber nicht in den Source eingetragen. Führende Leerzeichen sind dabei nicht stöhrend. Alles was direkt hinter dem Punkt steht, wird in den Source kopiert. Es werden max. 1024 Zeichen je Zeile eingelesen.

4, 5, 6 Definition einer Prozedur/Funktion

; <font color=purple><a name="targetdef">define target</a></font> ; ---------------------------- -- ----------- ; 4. (zs_html_proc_def_a) 4.<font color=purple><a name=" ; 5. (zs_html_proc_def_b) 5."> ; 6. (zs_html_proc_def_c) 6.</a></font>

7, 8, 9 Hyperlink zu einer Prozedur/Funktion

; <a href="#targetdef">link to target</a> ; --------- -- ---- ; 7. (zs_html_proc_use_a) 7.<a href=" ; 8. (zs_html_proc_use_b) 8."> ; 9. (zs_html_proc_use_c) 9.</a>

10, 11, 12 Hyperlink zu einer auskommentierten Prozedur/Funktion

; <a href="#targetdef"><font color=forestgreen>link to target</font></a> ; --------- ------------------------- ----------- ; 10. (zs_html_cproc_use_a) 10.<a href=" ; 11. (zs_html_cproc_use_b) 11."><font color=forestgreen> ; 12. (zs_html_cproc_use_c) 12.</font></a>

13, 14, 28 Schlüsselwörter die in langkeywords.ini definiert sind

Hier gibt es eine Besonderheit: Wenn 28. nicht definiert ist, wird das Schlüsselwort nur einmal ausgegeben. Wird 28. definiert, dann wird hinter den eingetragenen Code von 15. das Schlüsselwort nocheinmal ausgegeben, gefolgt von dem bei 28. definierten Code.
Beispiel ohne 28.:
;   <font color=blue>blue text</font>
;   -----------------         -------
;   13. (zs_html_keyword_def_a)
13.<font color=blue>
;   14. (zs_html_keyword_def_b)
14.</font>
  
Beispiel mit 28.:
; if you define 28, the keyword is printed twice! ; so 13 and 14 are used in another way ; example: ; <a href="javascript:q_help('keyword')" style="text-decoration: none;color:blue;">keyword</a> ; ---------------------------- ---------------------------------------------- ---- ; 13. (zs_html_other_keyword_def_a) 13.<a href="javascript:q_help(' ; 14. (zs_html_keyword_def_b) 14.')" style="text-decoration: none;color:blue;"> ; 28. (zs_html_keyword_def_c) 28.</a>

15, 16 Auskommentierte Schlüsselwörter die in langkeywords.ini definiert sind

; 15, 16 color of comments ; <font color=forestgreen>forestgreen text</font> ; ------------------------ ------- ; 15. (zs_html_comment_def_a) 15.<font color=forestgreen> ; 16. (zs_html_comment_def_b) 16.</font>

17, 18 Zahlen

; 17, 18 color of digits (e.g. 123 ) ; <font color=red>red text</font> ; ---------------- ------- ; 17 (zs_digitStart) 17.<font color=red> ; 18 (zs_digitEnd) 18.</font>

19, 20 Zeichenketten "ABC"

; 19, 20 color of strings (e.g. "ABC" ) ; <font color=dimgray>dimgray text</font> ; -------------------- ------- ; 19 (zs_StringStart) 19.<font color=dimgray> ; 20 (zs_StringEnd) 20.</font>

21, 22 Character 'A'

; 21, 22 color of char (e.g. 'A' ) ; <font color=dimgray>dimgray text</font> ; -------------------- ------- ; 21 (zs_CharStart) 21.<font color=dimgray> ; 22 (zs_CharEnd) 22.</font>

23, 24 Chill Binär- und Hexziffern H'FF

; 23, 24 color of binary or hex digits in chill (e.g. H'FFFF) ; <font color=red>red text</font> ; ---------------- ------- ; 23 (zs_ChillCharStart) 23.<font color=red> ; 24 (zs_ChillCharEnd) 24.</font>

25, 26, 27 Schlüsselwörter die in otherkeywords.ini definiert sind

Hier gibt es eine Besonderheit: Wenn 27. nicht definiert ist, wird das Schlüsselwort nur einmal ausgegeben. Wird 27. definiert, dann wird hinter den eingetragenen Code von 26. das Schlüsselwort nocheinmal ausgegeben, gefolgt von dem bei 27. definierten Code.
Beispiel ohne 27.:
;   25, 26 color of other keywords  (27 not defined)
;   declared in otherkeywords.ini
;   <font color=red>keyword</font>
;   ----------------       -------
;   25. (zs_html_other_keyword_def_a)
25.<font color=red>
;   26. (zs_html_other_keyword_def_b)
26.</font>

Beispiel mit 27.:
; if you define 27, the keyword is printed twice! ; so 25 and 26 are used in another way ; example: ; <a href="javascript:q_help('keyword')" style="text-decoration: none;color:blue;">keyword</a> ; ---------------------------- ---------------------------------------------- ---- ; 25. (zs_html_other_keyword_def_a) 25.<a href="javascript:q_help(' ; 26. (zs_html_other_keyword_def_b) 26.')" style="text-decoration: none;color:blue;"> ; 27. (zs_html_other_keyword_def_c) 27.</a>

Farben der Frames

Die Farben und Größen lassen sich vorgeben, der Titel ist jedoch immer der Name der Source-Datei.
Source Frame
; 1. Headerline of Source frame (zs_first_line_a2) 1.</title></head><body bgcolor=#ffffff text=black link=purple vlink=purple alink=silver><font color=black><pre>
Linker Frame mit der Liste der Prozeduren/Funktionen
; 2. Headerline of left frame (zs_first_line_a2pl) 2.</title></head><body bgcolor=#ffffff text=black link=purple vlink=purple alink=silver><font color=black><pre>
Größe der Frames
; 3. Frame definition (zs_FrameDef_a1) 3."</title></head><frameset cols="20%,*" border=1 frameborder=1 framespacing=1><frame src="

Beispiel mit Javascript

Im Verzeichnis example wird gezeigt, wie mit Hilfe der INI-Files eine Javascript Funktion aufgerufen werden kann. Wenn ein Keyword angeklickt wird, so wird ein neues Fenster geöffnet und die Datei info.html angezeigt. Dabei wird die Position angezeigt, an welcher der Anker den Namen des Keywords trägt.

Das Kommando zur Konvertierung war ../src2html example.c

Als Ergebnis wurde die Datei example.htm generiert.
example.htm besteht aus 2 Frames, deren Inhalt in examplelf.htm und examplesrc.htm abgelegt ist.

Definition der Keywords

In der Datei otherkeywords.ini sind Schlüsselwörter definiert. Diese wurden als Anker in der Datei info.html verwendet.

Ausschnitt aus otherkeywords.ini :
anker1
anker2
anker3
anker4
anker5
anker6
anker7

Deklaration der Javascript Funktion

In der Datei src2html.ini wird der Verweis auf die Javascript Funktion eingetragen. Ausschnitt aus src2html.ini :
  1.</title><script language="JavaScript" src="src2html.js" type="text/javascript"></script></head><body bgcolor=#ffffff text=black link=purple vlink=purple alink=silver><font color=black><pre> 
:
.
  25.<a href="javascript:q_help('
  ;   otherkeyword
  26.')" style="text-decoration: none;color:blue;">
  ;   other_keyword
  27.</a>             

Bei 1. wird die Kopfzeile der html Datei definiert. Hier wird der Verweis auf src2html.js eingetragen. Bei 25. wird auf die Funktion q_help() verwiesen. Diese ist in src2html.js definiert. Als Parameter wird das in otherkeywords.ini festgelegte und in der Source-Datei gefundene Schlüsselwort übergeben.

Definition der Javascript Funktion

In der mit 1. deklarierten Datei src2html.js steht die eigentliche Funktion.

function q_help( zp_anchor)
 {    
   MeinFenster = window.open("info.html", "helpfile");
   MeinFenster.focus();
   MeinFenster.location.href = "info.html#"+zp_anchor;
 }

Editorial

Dieses Programm wurde von Jörg Feler geschrieben. Es ist nicht zum Verkauf bestimmt sondern kann von jedem frei verwendet und kopiert werden. Es wird keine Garantie übernommen, das das Programm fehlerfrei funktioniert. Es wurde jedoch bereits ausgiebig getestet. Falls Fehler auftreten, wäre eine Mail mit einer möglichst genauen Beschreibung ganz nett. Bitte unbedingt die Version angeben. Alle registrierten Nutzer, werden benachrichtigt, sobald eine neue Version verfügbar ist.

Eine aktuelle Version steht unter http://www.feler.de/src2html/src2html.html und http://aww.bln.sel.alcatel.de/~feler/src2html/src2html.html zur Verfügung.

Viel Spaß wünscht
Jörg Feler