5 ($#ARGV >= 1) or die "Usage: toc_create.pl <input-doc-file>+";
12 my($level,$label,$name);
14 while(my $line=<FILE>) {
16 if($line=~/\\section\s*(\S\S*)\s*(.*)$/) {
21 # print "$label : $name\n";
22 push @toc,[$level,$label,$name];
23 } elsif($line=~/\\subsection\s*(\S\S*)\s*(.*)$/) {
28 # print "\t$label : $name\n";
29 push @toc,[$level,$label,$name];
30 } elsif($line=~/\\subsubsection\s*(\S\S*)\s*(.*)$/) {
35 # print "\t\t$label : $name\n";
36 push @toc,[$level,$label,$name];
41 my $outfile = ".$infile.toc";
42 $outfile =~ s|\.\./||g;
44 open OUTPUT,"> $outfile";
45 my($current_level)=-1;
47 print OUTPUT "<!-- Automatically generated table of contents --!>\n";
48 print OUTPUT "<div class=\"toc\">\n";
49 print OUTPUT "<div class=\"tocTitle\">Table of content</div>\n";
50 foreach $entry (@toc) {
51 ($level,$label,$name) = @$entry;
53 while($current_level<$level) {
54 print OUTPUT "<ol type=\"1\">\n";
57 while($current_level>$level) {
58 print OUTPUT "</ol>\n";
61 foreach (1..$current_level) {
64 print OUTPUT "<li> <a href=\"#$label\">$name</a>\n";
67 while($current_level>-1) {
68 print OUTPUT "</ol>\n";
71 print OUTPUT "</div>\n";
72 print OUTPUT "<!-- End of automatically generated table of contents --!>\n";
76 map { handle_file($_) } @ARGV;