Mit src2html kann ein Chill- oder C-Sourcecode so aufbereitet werden, das er mit
einem HTML-Browser angezeigt werden kann.
- Alle Funktions- und Prozeduraufrufe
werden zu Hyperlinks die zur jeweiligen Definition führen. Dabei wird
die Sprache Chill, und C (incl. C++ Kommentaren) unterstützt.
- Automatische Erkennung der verwendeten Programmiersprache
- Der Code wird farbig markiert, wobei zwischen
- Strings
- Digits
- Schlüsselwörter der Sprache (erweiterbar)
- Kommentar
- Frei definierbare Schlüsselwörter
unterschieden wird.
- Der einzusetzende HTML-Code kann vorgegeben werden
- Eigene Javascript Funktionen können eingebunden werden
- Alle Funktions- und Prozedurnamen werden in einem eigenen Frame angezeigt
- Auch Browser die keine Frames unterstützen werden unterstützt
- Der Source-Code muss fehlerfrei durch einen Compiler laufen
- Gleichnamige Funktionen mit verschiedenen Parametertypen
werden nicht unterschieden
- Unter DOS darf, wegen der 8.3 Einschränkung, der Name des
Sources max. 5 Zeichen haben, z.B. "ABCDE.C" ist ok.
Die *.htm Datei kann jedoch nachträglich umbenannt werden.
- Unter Linux/Unix werden keine versteckten Dateien (.xxx.c) oder
Verzeichnisse in den Parametern beim Aufruf unterstützt
- Include files werden nicht automatisch nachgeladen, können aber vor der
Konvertierung in die Source-Datei kopiert werden.
- Die INI-Files müssen in dem Verzeichnis sein, von dem src2html
aufgerufen wird.
Es gibt 3 INI-Files:
- src2html.ini
- langkeywords.ini
- otherkeywords.ini
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
- src2html.ini
- langkeywords.ini
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.
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.
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="
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;
}
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