On Tue, Nov 10, 2015 at 1:40 PM, C. Scott Ananian <cananian(a)wikimedia.org>
wrote:
2. `{{#balance:inline}}` would only allow inline
(i.e. phrasing) content
and generate an error if a
`<p>`/`<a>`/`<h*>`/`<table>`/`<tr>`/`<td>`/`
<th>`/`<li>` tag is seen in the content.
Why is <a> in that list? It's not flow/block content model and filtering it
out would severely restrict the usefulness of inline templates.
- In the Sanitizer leave that marker alone, and then just before
handling the output to tidy/depurate
<https://phabricator.wikimedia.org/T89331> we'll replace the marker
with
`</p></table>...etc...`. That pass will close the tags (and discard any
irrelevant `</...>` tags). Some care needed to ensure we discard
unnecessary close tags, and not html-entity-escape them.
(...)
- We just need to emit synthetic `</p></table></...>` tokens, the
tree
builder will take care of closing a tag if
necessary or else discarding
the
token.
What if there are multiple levels of unclosed tags?