On Tue, Nov 10, 2015 at 1:40 PM, C. Scott Ananian cananian@wikimedia.org wrote:
- `{{#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?