strip html from anchors
[sysadmin-cookbook-html] / bin / html.pl
index 35827eb..0b0d8e2 100755 (executable)
@@ -56,13 +56,18 @@ find({ follow => 0, no_chdir => 1, wanted => sub {
 my $last_level = 0;
 my $toc_html = '';
 sub header {
-       my ($level, $content) = @_;
-       my $display = $content;
+       my ($level, $name) = @_;
+
+       my $display = $name;
        $display =~ s{^\d+[\.-]}{};
        $display =~ s{-}{ }g;
        $display =~ s{\.\w+$}{};
-       $content =~ s{\W+}{_}g;
-       html qq|<a name=$content></a>|;
+
+       my $anchor = $name;
+       $anchor =~ s{</?[^>]+>}{}g;
+       $anchor =~ s{\W+}{_}g;
+
+       html qq|<a name=$anchor></a>|;
        html qq|<h$level>$display</h$level>|;
 
        if ( $last_level > $level ) {
@@ -70,7 +75,7 @@ sub header {
        } elsif ( $last_level < $level ) {
                $toc_html .= "<ul>";
        }
-       $toc_html .= qq|<li><a href="#$content">$display</li>|;
+       $toc_html .= qq|<li><a href="#$anchor">$display</li>|;
        $last_level = $level;
 }