summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-08-23 13:10:49 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-08-23 13:10:49 -0400
commit9b10f5eab22be36cf3b3a217076c76a669b4aafa (patch)
treecb60acfdbc8e810d45ee108a5677d02865577160 /IkiWiki/Plugin
parentd84e43faacbeb1e43224aa65d5ea8c19e657779e (diff)
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/Plugin')
-rw-r--r--IkiWiki/Plugin/map.pm11
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;