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