Allow HTML comments containing "--" even though it is not allowed by the CommonMark specification because it is allowed by the HTML specification and it happens in real life (fixes #996).

This commit is contained in:
David Anson 2023-10-07 20:18:43 -07:00
parent d2faf40e6a
commit 6eca6f1c3d
5 changed files with 53 additions and 3 deletions

View file

@ -1217,8 +1217,16 @@ function isHtmlFlowComment(token) {
type = token.type;
if (type === "htmlFlow" && text.startsWith("<!--") && text.endsWith("-->")) {
var comment = text.slice(4, -3);
return !comment.startsWith(">") && !comment.startsWith("->") && !comment.endsWith("-") && !comment.includes("--");
return !comment.startsWith(">") && !comment.startsWith("->") && !comment.endsWith("-")
// The following condition from the CommonMark specification is commented
// to avoid parsing HTML comments that include "--" because that is NOT a
// condition of the HTML specification.
// https://spec.commonmark.org/0.30/#raw-html
// https://html.spec.whatwg.org/multipage/syntax.html#comments
// && !comment.includes("--")
;
}
return false;
}

View file

@ -42,8 +42,13 @@ function isHtmlFlowComment(token) {
return (
!comment.startsWith(">") &&
!comment.startsWith("->") &&
!comment.endsWith("-") &&
!comment.includes("--")
!comment.endsWith("-")
// The following condition from the CommonMark specification is commented
// to avoid parsing HTML comments that include "--" because that is NOT a
// condition of the HTML specification.
// https://spec.commonmark.org/0.30/#raw-html
// https://html.spec.whatwg.org/multipage/syntax.html#comments
// && !comment.includes("--")
);
}
return false;

View file

@ -0,0 +1,14 @@
<!--
---
title: Front Matter YAML in HTML Comment
not-md035: |-
***
* * *
description: |-
This document has YAML front matter inside an HTML comment.
---
-->
# Front Matter YAML in HTML Comment
Text text text

View file

@ -13866,6 +13866,29 @@ Generated by [AVA](https://avajs.dev).
`,
}
## front-matter-yaml-in-html-comment.md
> Snapshot 1
{
errors: [],
fixed: `<!--
---␊
title: Front Matter YAML in HTML Comment␊
not-md035: |-␊
***␊
* * *␊
description: |-␊
This document has YAML front matter inside an HTML comment.␊
---␊
-->␊
# Front Matter YAML in HTML Comment␊
Text text text␊
`,
}
## front-matter.md
> Snapshot 1