]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/bugs/map_fails_to_close_ul_element_for_empty_list.mdwn
clarify which map I mena
[ikiwiki.git] / doc / bugs / map_fails_to_close_ul_element_for_empty_list.mdwn
index c786c5f6868ef80480da71e16357f3607db4df49..0edba438c8aa3c3b60895890b1110a70b05b8ce9 100644 (file)
@@ -6,11 +6,42 @@ input:
 
 Presuming that the pagespec does not match, output:
 
 
 Presuming that the pagespec does not match, output:
 
-    <p>before.
-    <div class="map">
-    <ul>
-    </div></p>
+    <p>before.
+    <div class="map">
+    <ul>
+    </div></p>
 
 The UL element is not closed.
 
 
 The UL element is not closed.
 
+Patch[[!tag patch]]:
+
+    --- /usr/share/perl5/IkiWiki/Plugin/map.pm  2009-05-06 00:56:55.000000000 +0100
+    +++ IkiWiki/Plugin/map.pm   2009-06-15 12:23:54.000000000 +0100
+    @@ -137,11 +137,11 @@
+            $openli=1;
+            $parent=$item;
+        }
+    -   while ($indent > 0) {
+    +   while ($indent > 1) {
+            $indent--;
+            $map .= "</li>\n</ul>\n";
+        }
+    -   $map .= "</div>\n";
+    +   $map .= "</ul>\n</div>\n";
+        return $map;
+     }
+     
+
 -- [[Jon]]
 -- [[Jon]]
+
+> Strictly speaking, a `<ul>` with no `<li>`s isn't valid HTML either...
+> could `map` instead delay emitting the first `<ul>` until it determines that
+> it will have at least one item? Perhaps refactoring that function into
+> something easier to regression-test would be useful. --[[smcv]]
+
+>> You are right (just checked 4.01 DTD to confirm). I suspect refactoring
+>> the function would be wise. From my brief look at it to formulate the
+>> above I thought it was a bit icky.  I'm not a good judge of what would
+>> be regression-test friendly but I might have a go at reworking it. With
+>> this variety of problem I have a strong inclination to use HOFs like map,
+>> grep. - [[Jon]]