Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | #!/usr/local/bin/perl |
2 | # | |
3 | # $Date: 1997/05/15 16:06:29 $ | |
4 | ||
5 | $tocfile = shift @ARGV; | |
6 | system("/bin/cp $tocfile $tocfile.$$"); | |
7 | open(IN, "$tocfile.$$") or die "Unable to open $tocfile\n"; | |
8 | open(OUT, ">$tocfile") or die "Unable to create $tocfile\n"; | |
9 | ||
10 | while (<IN>) { | |
11 | print OUT $_; | |
12 | if (/<!--X-TOC-Start-->/) { | |
13 | while (<IN>) { | |
14 | last if (/<!--X-TOC-End-->/); | |
15 | } | |
16 | foreach $file (@ARGV) { | |
17 | open(FILE, $file) or die "Unable to open $file\n"; | |
18 | ||
19 | print OUT "<ul>\n"; | |
20 | while (<FILE>) { | |
21 | chomp; | |
22 | next unless m|<h2|i; | |
23 | ($id) = m|name="(.*?)"|i; | |
24 | s|</?h\d.*?>||gi; s|</?a.*?>||gi; | |
25 | s|<img[^>]*>||gi; | |
26 | print OUT qq{<li><a name="$id" href="$file">$_</a>\n<ul>\n}; | |
27 | last; | |
28 | } | |
29 | while (<FILE>) { | |
30 | chomp; | |
31 | next unless m|<h3|i; | |
32 | ($id) = m|name="(.*?)"|i; | |
33 | s|</?h\d.*?>||gi; s|</?a.*?>||gi; | |
34 | s|</?b>||gi; | |
35 | s|<img[^>]*>||gi; | |
36 | print OUT qq{<li><a name="$id" href="$file#$id">$_</a></li>\n}; | |
37 | } | |
38 | print OUT "</ul>\n</ul>\n"; | |
39 | close FILE; | |
40 | } | |
41 | print OUT "<!--X-TOC-End-->\n"; | |
42 | } | |
43 | } | |
44 | close IN; | |
45 | close OUT; | |
46 | unlink "$tocfile.$$"; | |
47 | ||
48 | exit 0; |