* unbreakable tags must be opened and closed with correct nesting by the parser (enforce this by formatter)
* breakable tags must be closed and reopened if needed by the formatter
* needs special treatment
* it must be opened and closed automatically if needed
* parser should only need to say: new paragraph, please.
== Opening a tag ==
=== Unbreakable tag ===
* ensure that tag is not already open if not allowed (raise error)
* collect all breakable tags (close and remember)
* close some unbreakable tags (
) ????
* check if enclosing tag is correct (????)
* insert tag
* reopen collected tags
=== breakable tag ===
* ensure that tag is not already open (raise error)
* insert tag
== Closing tag ==
* collect breakable tags
* perhaps close some open unbreakable tags (