diff options
-rw-r--r-- | IkiWiki/Plugin/map.pm | 18 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn | 2 |
3 files changed, 14 insertions, 8 deletions
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm index ce3ac1d24..38f090ff7 100644 --- a/IkiWiki/Plugin/map.pm +++ b/IkiWiki/Plugin/map.pm @@ -94,8 +94,9 @@ sub preprocess (@) { if defined $common_prefix && length $common_prefix; my $depth = ($item =~ tr/\//\//) + 1; my $baseitem=IkiWiki::dirname($item); - while (length $parent && length $baseitem && $baseitem !~ /^\Q$parent\E(\/|$)/) { - $parent=IkiWiki::dirname($parent); + my $parentbase=IkiWiki::dirname($parent); + while (length $parentbase && length $baseitem && $baseitem !~ /^\Q$parentbase\E(\/|$)/) { + $parentbase=IkiWiki::dirname($parentbase); last if length $addparent && $baseitem =~ /^\Q$addparent\E(\/|$)/; $addparent=""; $indent--; @@ -113,14 +114,10 @@ sub preprocess (@) { } my @bits=split("/", $item); my $p=""; + $indent++ unless length $parent; $p.="/".shift(@bits) for 1..$indent; while ($depth > $indent) { - $indent++; - if ($indent > 1) { - $map .= "<ul>\n"; - } - if ($depth > $indent) { - $p.="/".shift(@bits); + if (@bits && !(length $parent && "/$parent" eq $p)) { $addparent=$p; $addparent=~s/^\///; $map .= "<li>" @@ -133,6 +130,11 @@ sub preprocess (@) { else { $openli=0; } + $indent++; + $p.="/".shift(@bits) if @bits; + if ($indent > 1) { + $map .= "<ul>\n"; + } } $map .= "</li>\n" if $openli; $map .= "<li>" diff --git a/debian/changelog b/debian/changelog index ec345f720..c2243572c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,8 @@ ikiwiki (3.20110125) UNRELEASED; urgency=low * autoindex: Adapted to use add_autofile. Slight behavior changes in edge cases that are probably really bug fixes. (smcv) * recentchanges: Use transient underlay (smcv) + * map: Avoid unnecessary ul's in maps with nested directories. + (Giuseppe Bilotta) -- Joey Hess <joeyh@debian.org> Tue, 01 Feb 2011 21:00:57 -0400 diff --git a/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn b/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn index f66e2c0e5..a6546faad 100644 --- a/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn +++ b/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn @@ -58,3 +58,5 @@ This might be really simple, but I've been staring at it too long and it only lo >>>> An updated [[patch]] can be found [here](http://git.oblomov.eu/ikiwiki/patch/dcfb18b7989a9912ed9489f5ff15f871b6d8c24a) >>>>> Seems to work perfectly to me, thanks! -- [[AdamShand]] + +[[applied|done]] --[[Joey]] |