bug report + branch with fix and regression test

master
http://smcv.pseudorandom.co.uk/ 2013-02-24 09:37:37 -04:00 committed by admin
parent 5a6d33598c
commit 69e7323992
1 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,33 @@
[[!template id=gitbranch branch=smcv/ready/map author="[[Simon McVittie|smcv]]"]]
`\[[!map]]` can generate bad HTML with unbalanced open/close tags
(in XML terms: "not well-formed") in certain situations. This
appears to be a regression caused by fixing
[[maps with nested directories sometimes make ugly lists]], which
suppressed some redundant `</ul><ul>` pairs, but appears not to
have the ideal logic for this, leading to malformed HTML.
In particular, on a site with these pages:
* alpha
* 1
* i
* ii
* iii
* iv
* 2
* a
* b
* 3
* beta
the maps "alpha/1 or beta", "alpha/1/i* or alpha/2/a or beta" and
"alpha/1/i* or alpha/2/a" have malformed HTML.
My `ready/map` branch adds a regression test and makes it pass.
The fix is not particularly elegant - it generates the previous
HTML with redundant `</ul><ul>` pairs, marks the redundant
pairs, and edits them out afterwards - but it works. If anyone can come
up with a cleaner algorithm that avoids generating the redundant tags
in the first place, that would be even better. --[[smcv]]