| 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; |