summaryrefslogtreecommitdiff
path: root/doc/bugs/map_fails_to_close_ul_element_for_empty_list.mdwn
blob: 4ce257252fd96114ac5aedca9c4c2f5c78138c81 (plain)

input:

before.
\[[!map pages="sdfsdfsdfsd/*"]]
after.

Presuming that the pagespec does not match, output:

<p>before.
<div class="map">
<ul>
</div></p>

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]]

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]]