It would be nice if the [[plugins/toc]] plugin let you specify a header level "ceiling" above which (or above and including which) the headers would not be incorporated into the toc. Currently, the levels=X parameter lets you tweak how deep it will go for small headers, but I'd like to chop off the h1's (as I use them for my page title) -- [[Jon]] > This change to toc.pm should do it. --[[KathrynAndersen]] > > The patch looks vaguely OK to me but it's hard to tell without > > context. It'd be much easier to review if you used unified diff > > (`diff -u`), which is what `git diff` defaults to - almost all > > projects prefer to receive changes as unified diffs (or as > > branches in their chosen VCS, which is [[git]] here). --[[smcv]] > > > Done. -- [[KathrynAndersen]] > > > > Looks like Joey has now [[merged|done]] this. Thanks! --[[smcv]] --- /files/git/other/ikiwiki/IkiWiki/Plugin/toc.pm 2009-11-16 12:44:00.352050178 +1100 +++ toc.pm 2009-12-26 06:36:06.686512552 +1100 @@ -53,8 +53,8 @@ my $page=""; my $index=""; my %anchors; - my $curlevel; - my $startlevel=0; + my $startlevel=($params{startlevel} ? $params{startlevel} : 0); + my $curlevel=$startlevel-1; my $liststarted=0; my $indent=sub { "\t" x $curlevel }; $p->handler(start => sub { @@ -67,10 +67,16 @@ # Take the first header level seen as the topmost level, # even if there are higher levels seen later on. + # unless we're given startlevel as a parameter if (! $startlevel) { $startlevel=$level; $curlevel=$startlevel-1; } + elsif (defined $params{startlevel} + and $level < $params{startlevel}) + { + return; + } elsif ($level < $startlevel) { $level=$startlevel; } [[!tag patch]]