X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/e16746a52f40f478af1b634c532d90c25cc0ec76..eff2ddbe9a49b1993800e5455246c91769d70046:/IkiWiki/Plugin/toc.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/toc.pm b/IkiWiki/Plugin/toc.pm index c36ce2893..063e66f3b 100644 --- a/IkiWiki/Plugin/toc.pm +++ b/IkiWiki/Plugin/toc.pm @@ -14,7 +14,7 @@ sub import { #{{{ call => \&format); } # }}} -my @tocs; +my %tocpages; sub preprocess (@) { #{{{ my %params=@_; @@ -23,17 +23,17 @@ sub preprocess (@) { #{{{ # It's too early to generate the toc here, so just record the # info. - push @tocs, \%params; + $tocpages{$params{destpage}}=\%params; - return "\n[[toc $#tocs]]\n"; + return "\n
\n"; } # }}} -sub format ($) { #{{{ - my $content=shift; +sub format (@) { #{{{ + my %params=@_; + my $content=$params{content}; - return $content unless @tocs && $content=~/\[\[toc (\d+)\]\]/ && $#tocs >= $1; - my $id=$1; - my %params=%{$tocs[$id]}; + return $content unless exists $tocpages{$params{page}}; + %params=%{$tocpages{$params{page}}}; my $p=HTML::Parser->new(api_version => 3); my $page=""; @@ -107,9 +107,7 @@ sub format ($) { #{{{ $index.=&$indent."\n"; } - # Ignore cruft around the toc marker, probablytags added by - # markdown which shouldn't appear in a list anyway. - $page=~s/\n.*\[\[toc $id\]\].*\n/$index/; + $page=~s/(