diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-21 15:12:02 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-21 15:22:35 -0400 |
commit | 886890b82d727385f5bb167ef7684288e98a5218 (patch) | |
tree | 8b1ce9718b28c8596cb7de7068a4d17b165a5af6 /IkiWiki | |
parent | aef8bef8acd06aa3b13c95cfdc78dfc129482a97 (diff) | |
download | ikiwiki-886890b82d727385f5bb167ef7684288e98a5218.tar ikiwiki-886890b82d727385f5bb167ef7684288e98a5218.tar.gz |
move headinganchors out of contrib
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/headinganchors.pm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/headinganchors.pm b/IkiWiki/Plugin/headinganchors.pm new file mode 100644 index 000000000..80b39ec05 --- /dev/null +++ b/IkiWiki/Plugin/headinganchors.pm @@ -0,0 +1,30 @@ +#!/usr/bin/perl +# quick HTML heading id adder by Paul Wise +package IkiWiki::Plugin::headinganchors; + +use warnings; +use strict; +use IkiWiki 2.00; + +sub import { + hook(type => "sanitize", id => "headinganchors", call => \&headinganchors); +} + +sub text_to_anchor { + my $str = shift; + $str =~ s/^\s+//; + $str =~ s/\s+$//; + $str = lc($str); + $str =~ s/[&\?"\'\.,\(\)!]//mig; + $str =~ s/[^a-z]/_/mig; + return $str; +} + +sub headinganchors (@) { + my %params=@_; + my $content=$params{content}; + $content=~s{<h([0-9])>([^>]*)</h([0-9])>}{'<h'.$1.' id="'.text_to_anchor($2).'">'.$2.'</h'.$3.'>'}gie; + return $content; +} + +1 |