]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
authorJoey Hess <joey@kitenet.net>
Wed, 9 Feb 2011 18:47:42 +0000 (14:47 -0400)
committerJoey Hess <joey@kitenet.net>
Wed, 9 Feb 2011 18:47:42 +0000 (14:47 -0400)
IkiWiki/Plugin/map.pm
debian/changelog
doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn

index ce3ac1d24e93be888ca9e81f597f55d8b2f41424..38f090ff782f8799edbe074b9778477809f9d045 100644 (file)
@@ -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>"
index ec345f7201f0f7aa7d736784dd5052daf4cdc622..c2243572c41844ed21412dac4822bc9c93e460b8 100644 (file)
@@ -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
 
index f66e2c0e5436c9a690b8011cdcb782f130bd6db2..a6546faadedbb0b77559a17db4d756cb3a656176 100644 (file)
@@ -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]]