Add v-html text content without modification #50
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prior to this commit, if the value for
v-html
did not begin with an HTML element tag, it would be wrapped in a<p>
tag before being added to its node. This introduced inconsistency in rendering, for example:'plain text'
became'<p>plain text</p>'
'<span>span content</span>'
would remain as-isAn additional problem is that if the string began with plain text, but contained an element not allowed in a
<p>
, that<p>
wrapper would be closed early, potentially creating an even more complex structure than expected.for example:
'beginning <div>internal text</div> ending'
'<p>beginning </p><div>internal text</div> ending'
This wrapping/modification is prevented by wrapping the string in a
<body>
tag before it is given to the HtmlParser. This<body>
tag is only used as a temporary container. Before, it was added in the parser as an implied tag. Adding it explicitly serves the same function of providing a temporary node to extract childNodes from, without the<p>
side effect.Additionally, the tests for
v-html
are collected into one, using dataProvider function to cover the variationsBug: T402295