diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-08-23 13:10:49 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-08-23 13:10:49 -0400 |
commit | 9b10f5eab22be36cf3b3a217076c76a669b4aafa (patch) | |
tree | cb60acfdbc8e810d45ee108a5677d02865577160 /IkiWiki | |
parent | d84e43faacbeb1e43224aa65d5ea8c19e657779e (diff) | |
download | ikiwiki-9b10f5eab22be36cf3b3a217076c76a669b4aafa.tar ikiwiki-9b10f5eab22be36cf3b3a217076c76a669b4aafa.tar.gz |
map: The fix for #449285 was buggy and broke display of parents in certian circumstances.
The use of $dummy was not sufficient, because it only stuck around for the
first element after a dummy parent, and was then lost. Instead, use a
$addparent that contains the actual dummy parent, so it can be compared
with the new item to see if we're still under that parent or have moved to
another one.
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/map.pm | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm index 4c2a15b01..18c584a30 100644 --- a/IkiWiki/Plugin/map.pm +++ b/IkiWiki/Plugin/map.pm @@ -80,7 +80,7 @@ sub preprocess (@) { #{{{ my $parent=""; my $indent=0; my $openli=0; - my $dummy=0; + my $addparent=""; my $map = "<div class='map'>\n<ul>\n"; foreach my $item (sort keys %mapitems) { my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ()); @@ -88,17 +88,16 @@ sub preprocess (@) { #{{{ if defined $common_prefix && length $common_prefix; my $depth = ($item =~ tr/\//\//) + 1; my $baseitem=IkiWiki::dirname($item); - print STDERR "!! parent: $parent baseitem: $baseitem\n"; while (length $parent && length $baseitem && $baseitem !~ /^\Q$parent\E(\/|$)/) { $parent=IkiWiki::dirname($parent); - last if !$dummy && length $parent && $baseitem =~ /^\Q$parent\E(\/|$)/; + last if length $addparent && $baseitem =~ /^\Q$addparent\E(\/|$)/; + $addparent=""; $indent--; $map .= "</li>\n"; if ($indent > 0) { $map .= "</ul>\n"; } } - $dummy=0; while ($depth < $indent) { $indent--; $map .= "</li>\n"; @@ -116,14 +115,14 @@ sub preprocess (@) { #{{{ } if ($depth > $indent) { $p.="/".shift(@bits); - #$p=~s/^\///; + $addparent=$p; + $addparent=~s/^\///; $map .= "<li>" .htmllink($params{page}, $params{destpage}, "/".$common_prefix.$p, class => "mapparent", noimageinline => 1) ."\n"; $openli=1; - $dummy=1; } else { $openli=0; |