]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/headinganchors.pm
Avoid uninitialized warnings with comments+no CGI.
[git.ikiwiki.info.git] / IkiWiki / Plugin / headinganchors.pm
index 80b39ec05c7262c37c4a2113f1fa2c4b4aca5ca6..ece6f4eaca63aa952f2aa94bd03cd67650691b31 100644 (file)
@@ -4,19 +4,32 @@ package IkiWiki::Plugin::headinganchors;
 
 use warnings;
 use strict;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
+use URI::Escape;
 
 sub import {
 
 sub import {
+       hook(type => "getsetup", id => "headinganchors", call => \&getsetup);
        hook(type => "sanitize", id => "headinganchors", call => \&headinganchors);
 }
 
        hook(type => "sanitize", id => "headinganchors", call => \&headinganchors);
 }
 
+sub getsetup () {
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => undef,
+                       section => "widget",
+               },
+}
+
 sub text_to_anchor {
        my $str = shift;
        $str =~ s/^\s+//;
        $str =~ s/\s+$//;
 sub text_to_anchor {
        my $str = shift;
        $str =~ s/^\s+//;
        $str =~ s/\s+$//;
-       $str = lc($str);
-       $str =~ s/[&\?"\'\.,\(\)!]//mig;
-       $str =~ s/[^a-z]/_/mig;
+       $str =~ s/\s/_/g;
+       $str =~ s/"//g;
+       $str =~ s/^[^a-zA-Z]/z-/; # must start with an alphabetical character
+       $str = uri_escape_utf8($str);
+       $str =~ s/%/./g;
        return $str;
 }
 
        return $str;
 }