3 ($#ARGV >= 1) or die "Usage: toc_create.pl <input-doc-file> <output-toc-file>";
6 my($level,$label,$name);
14 if($line=~/\\section\s*(\S\S*)\s*(.*)$/) {
19 # print "$label : $name\n";
20 push @toc,[$level,$label,$name];
21 } elsif($line=~/\\subsection\s*(\S\S*)\s*(.*)$/) {
26 # print "\t$label : $name\n";
27 push @toc,[$level,$label,$name];
28 } elsif($line=~/\\subsubsection\s*(\S\S*)\s*(.*)$/) {
33 # print "\t\t$label : $name\n";
34 push @toc,[$level,$label,$name];
39 open OUTPUT,"> $output";
40 my($current_level)=-1;
42 print OUTPUT "<!-- Automatically generated table of contents --!>\n";
43 foreach $entry (@toc) {
44 ($level,$label,$name) = @$entry;
46 while($current_level<$level) {
47 print OUTPUT "<ol type=\"1\">\n";
50 while($current_level>$level) {
51 print OUTPUT "</ol>\n";
54 foreach (1..$current_level) {
57 print OUTPUT "<li> <a href=\"#$label\">$name</a>\n";
60 while($current_level>-1) {
61 print OUTPUT "</ol>\n";
64 print OUTPUT "<!-- End of automatically generated table of contents --!>\n";