Can we just get rid of HTML and replace it with JSON while we're at it?
I don't know if there's a proper name for this ability, but neither JSON nor YAML allow you to embed child tree nodes inside of node values. This ability requires named end tags. Example: This is bold text. "p": "This is ... uh ... nevermind." You could make a compelling argument that you shouldn't do this (separate block level and inline elements into separate encodings), but remember that even the relatively minor…
's children into three: a "text node"; a node; and another text node. You'd end up with something like this:
{
p: [
{ text: 'This is' },
{ b: { text: 'bold' }},
{ text: 'text.'}
]
}
Not that I don't agree with you -- my suggestion is pretty messy and doesn't even go into how we'd deal with tag attributes -- but it's doable.