]> git.draconx.ca Git - gob-dx.git/blob - doc/makehtml.pl
Release 2.0.7
[gob-dx.git] / doc / makehtml.pl
1 #!/usr/bin/perl
2 $printbr = 1;
3 $printtable = 0;
4 while (<>) {
5         s/\\&//g;
6         s/&/&amp;/g;
7         s/\</&lt;/g;
8         s/\>/&gt;/g;
9         s/\\'/'/g;
10         s/\\-/-/g;
11         if ($printtable == 1) {
12                 $printtable = 2;
13         } elsif ($printtable == 2) {
14                 $printtable = 3;
15                 print "</TD><TD ALIGN=\"left\">";
16         }
17
18         #hack, we're inside .nf so highlight comments and
19         # other such stuff
20         if ($printbr == 0) {
21                 s/\/\*/<FONT COLOR="#5555ff">\/\*/g;
22                 s/\*\//\*\/<\/FONT>/g;
23         }
24         
25         if (/^\.\\"/) {
26                 # comment ignore
27         } elsif (/^\.TH .*\"([^"]*)\"/) {
28                 # must be at the front
29                 print "<HTML><HEAD><TITLE>$1 Manual page</TITLE></HEAD>\n";
30                 print "<BODY BGCOLOR=\"#ffffff\">\n";
31                 print "<H1>$1 Manual page</H1>\n";
32         } elsif (/^\.SH (.*)$/) {
33                 if ($printtable == 3) {
34                         $printtable = 0;
35                         print "</TD></TR></TABLE>\n";
36                 }
37                 print "<H3>$1</H3>\n";
38         } elsif (/^\.PP/) {
39                 if ($printtable == 3) {
40                         $printtable = 0;
41                         print "</TD></TR></TABLE>\n";
42                 }
43                 print "<P>\n";
44         } elsif (/^\.IP/) {
45                 if ($printtable == 3) {
46                         $printtable = 0;
47                         print "</TD></TR></TABLE>\n";
48                 }
49                 print "<P>\n";
50         } elsif (/^\.B "(.*)"$/) {
51                 print "<B>$1</B>\n";
52         } elsif (/^\.B (.*)$/) {
53                 print "<B>$1</B>\n";
54         } elsif (/^\.I "(.*)"$/) {
55                 print "<I>$1</I>\n";
56         } elsif (/^\.I (.*)$/) {
57                 print "<I>$1</I>\n";
58         } elsif (/^\.nf/) {
59                 if ($printtable == 3) {
60                         $printtable = 0;
61                         print "</TD></TR></TABLE>\n";
62                 }
63                 print "<TABLE WIDTH=100%><TR><TD BGCOLOR=\"#dddddd\"><PRE>\n";
64                 $printbr = 0;
65         } elsif (/^\.fi/) {
66                 print "</PRE>\n";
67                 print "</TD></TR></TABLE>\n";
68                 $printbr = 1;
69         } elsif (/^[    ]*$/) {
70                 if ($printtable == 3) {
71                         $printtable = 0;
72                         print "</TD></TR></TABLE>\n";
73                 }
74                 if ($printbr) {
75                         print "<BR>\n";
76                 } else {
77                         print "\n";
78                 }
79         } elsif (/^\.TP/) {
80                 if ($printtable == 3) {
81                         $printtable = 1;
82                         print "</TD></TR><TR>\n<TD ALIGN=\"left\">";
83                 } else {
84                         $printtable = 1;
85                         print "<TABLE BORDER><TR>\n<TD ALIGN=\"left\">";
86                 }
87         } else {
88                 s/\\fB([^\\]*)\\fR/<B>\1<\/B>/gm;
89                 s/\\fI([^\\]*)\\fR/<I>\1<\/I>/gm;
90                 s/&lt;([a-zA-Z0-9.]+\@[a-zA-Z0-9.]+)&gt;/&lt;<a href=\"mailto:\1\">\1<\/a>&gt;/g;
91                 s/(http:\/\/[a-zA-Z0-9.\/~]+\.html)/<a href=\"\1\">\1<\/a>/g;
92                 print;
93         }
94 }
95
96 print "</BODY></HTML>\n";