diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-08-01 16:15:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-01 16:15:51 -0700 |
commit | 45e0c72a183916744ffa95b43ce8d0ef013de07c (patch) | |
tree | f706cfbb8b17bc8ffeebfbd6ae288291cb730032 | |
parent | f09a9775cf57f6842484acc98f9864b4551616fa (diff) | |
parent | db4c324fd3565ea8a706647375e0d365066b16a1 (diff) |
Merge pull request #459 from kivikakk/html-block-clarification
Clarify HTML blocks re: "nested" blocks
-rw-r--r-- | spec.txt | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -2042,6 +2042,37 @@ or [closing tag] (with any [tag name] other than `script`, or the end of the line.\ **End condition:** line is followed by a [blank line]. +HTML blocks continue until they are closed by their appropriate +[end condition], or the last line of the document or other [container block]. +This means any HTML **within an HTML block** that might otherwise be recognised +as a start condition will be ignored by the parser and passed through as-is, +without changing the parser's state. + +For instance, `<pre>` within a HTML block started by `<table>` will not affect +the parser state; as the HTML block was started in by start condition 6, it +will end at any blank line. This can be surprising: + +```````````````````````````````` example +<table><tr><td> +<pre> +**Hello**, + +_world_. +</pre> +</td></tr></table> +. +<table><tr><td> +<pre> +**Hello**, +<p><em>world</em>. +</pre></p> +</td></tr></table> +```````````````````````````````` + +In this case, the HTML block is terminated by the newline — the `**hello**` +text remains verbatim — and regular parsing resumes, with a paragraph, +emphasised `world` and inline and block HTML following. + All types of [HTML blocks] except type 7 may interrupt a paragraph. Blocks of type 7 may not interrupt a paragraph. (This restriction is intended to prevent unwanted interpretation |