]> sipb.mit.edu Git - ikiwiki.git/blob - doc/todo/toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn
patch in diff -u format
[ikiwiki.git] / doc / todo / toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn
1 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.
2
3 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]]
4
5 > This change to toc.pm should do it. --[[KathrynAndersen]]
6
7 > > The patch looks vaguely OK to me but it's hard to tell without
8 > > context. It'd be much easier to review if you used unified diff
9 > > (`diff -u`), which is what `git diff` defaults to - almost all
10 > > projects prefer to receive changes as unified diffs (or as
11 > > branches in their chosen VCS, which is [[git]] here). --[[smcv]]
12
13 > > > Done. -- [[KathrynAndersen]]
14
15
16         --- /files/git/other/ikiwiki/IkiWiki/Plugin/toc.pm      2009-11-16 12:44:00.352050178 +1100
17         +++ toc.pm      2009-12-26 06:36:06.686512552 +1100
18         @@ -53,8 +53,8 @@
19                 my $page="";
20                 my $index="";
21                 my %anchors;
22         -       my $curlevel;
23         -       my $startlevel=0;
24         +       my $startlevel=($params{startlevel} ? $params{startlevel} : 0);
25         +       my $curlevel=$startlevel-1;
26                 my $liststarted=0;
27                 my $indent=sub { "\t" x $curlevel };
28                 $p->handler(start => sub {
29         @@ -67,10 +67,16 @@
30                 
31                                 # Take the first header level seen as the topmost level,
32                                 # even if there are higher levels seen later on.
33         +                       # unless we're given startlevel as a parameter
34                                 if (! $startlevel) {
35                                         $startlevel=$level;
36                                         $curlevel=$startlevel-1;
37                                 }
38         +                       elsif (defined $params{startlevel}
39         +                              and $level < $params{startlevel})
40         +                       {
41         +                           return;
42         +                       }
43                                 elsif ($level < $startlevel) {
44                                         $level=$startlevel;
45                                 }
46
47 [[!tag patch]]