commonmark / cmark

CommonMark parsing and rendering library and program in C
Other
1.6k stars 534 forks source link

why does this HTML block start and end on the same line? #488

Open step- opened 8 months ago

step- commented 8 months ago

Why is the HTML block (spec 4.6) closed on the same line when https://github.com/commonmark/commonmark-spec/blob/d5706b9553d4665ca730524323d484880440186c/spec.txt#L2368 says that

[An HTML block] ends with the first subsequent line that meets a matching end condition. (emphasis mine)

cmark << EOF
<!-- comment --> 0
1
-->
2
EOF
<!-- raw HTML omitted -->
<p>1
--&gt;
2
EOF</p>

I think cmark parses the comment as an HTML block. It couldn't be a raw HTML comment (spec 6.6) otherwise "0" would surface inside a <p>. So it seems that, contrary to the specification, the HTML block ends on the same line where it starts, instead of ending between "1" and "2".

jgm commented 8 months ago

I think maybe the word "subsequent" is misplaced. There can definitely be HTML blocks that start and end on the same line, e.g.

<div></div>
step- commented 8 months ago

Should I open an issue about "subsequent" in the specification repo?

jgm commented 8 months ago

Yes please.