+my $last_level = 0;
+my $toc_html = '';
+sub header {
+ my ($level, $content) = @_;
+ my $display = $content;
+ $display =~ s{^\d+[\.-]}{};
+ $display =~ s{-}{ }g;
+ html qq|<a name=$content></a>|;
+ html qq|<h$level>$display</h$level>|;
+
+ if ( $last_level > $level ) {
+ $toc_html .= "</ul>";
+ } elsif ( $last_level < $level ) {
+ $toc_html .= "<ul>";
+ }
+ $toc_html .= qq|<li><a href="#$content">$display</li>|;
+ $last_level = $level;
+}
+