bitpiston / oyster

A Perl web application framework.
Other
3 stars 1 forks source link

bbcode parser chokes on inline elements wrapping blocks #35

Open einkoro opened 12 years ago

einkoro commented 12 years ago

The BBcode to XHTML parser chokes on inline elements wrapping blocks.

A common example of the issue would be wrapping a bbcode inline element such as italics around block elements such as paragraphs. This results in parser error: Opening and ending tag mismatch: p and em.

The expected result should be opening the inline element and closing it in every block that is wrapped within it.

BBcode (source):

[i]Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ornare diam quis turpis bibendum sodales. 

In iaculis est bibendum erat pretium non pharetra turpis iaculis. Proin in purus mauris. Donec erat augue, lobortis vitae tristique at, vestibulum ac magna.

Donec eu lectus sed sem tempus consequat. Cras bibendum, lectus at interdum fringilla, lorem felis porttitor urna, eget molestie neque nisl id justo.[/i]

XHTML (output):

<p><em>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ornare diam quis turpis bibendum sodales.</p>
<p>In iaculis est bibendum erat pretium non pharetra turpis iaculis. Proin in purus mauris. Donec erat augue, lobortis vitae tristique at, vestibulum ac magna.</p>
<p>Donec eu lectus sed sem tempus consequat. Cras bibendum, lectus at interdum fringilla, lorem felis porttitor urna, eget molestie neque nisl id justo.</em></p>