Browse Source
When forming paragraphs, a $string is wrapped to become <p>$string</p>. If the opening "<p>" ends up being auto-closed by markup within $string, then either another "<p>" must be auto-opened or the closing "</p>" of the wrapper must be silently dropped to avoid a validation failure. Figuring out exactly where to auto-open the "<p>" turns out to be somewhat more difficult than just dropping the wrapper's "</p>". For now just go ahead and drop the wrapper's closing "</p>" if the wrapper's opening "<p>" has been auto-closed by the time the validator encounters the wrapper's closing "</p>". At the same time, make sure that all "optional closing tag" tags that occur after the wrapper's opening "<p>" get closed immediately upon encountering the wrapper's closing "</p>" (whether or not it ultimately gets dropped). With these changes, this input: line<p>one line<p>three or this input: line<p>one</p> line<p>three</p> produces this output: <p>line</p><p>one</p> <p>line</p><p>three</p> While this input: line<p>one</p>x1 line<p>three</p>x3 produces this output: <p>line</p><p>one</p>x1 <p>line</p><p>three</p>x3 In this last example, the "x1" and "x3" text is left hanging outside of a "p" section. The client "user agent" (aka browser) will end up rendering these hanging "x1" and "x3" pieces of text in their own "p" sections. With these changes, simple markup that would previously have been rejected for no apparent reason by the default `--validate-xml-internal` parser while being accepted by the `--validate-xml` option becomes acceptable to the `--validate-xml-internal` parser as well. Signed-off-by: Kyle J. McKay <mackyle@gmail.com>master
Kyle J. McKay
4 years ago
1 changed files with 58 additions and 27 deletions
Loading…
Reference in new issue