-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Version: 5.5.1
I suspect this is a known limitation and/or expected behaviour, but it was surprising! For context, I'm building a prettier plugin that uses the htmljs-parser directly to format Marko files.
Details
There are two related issues:
- Comments within an open tag are not emitted in
onComment. They are included in the value ofonAttrValue. - When parsing a tag with a comment before the first attribute, the parser does not emit the comment (as far as I can tell).
<meta
// I disappear when consumed by the htmljs-parser.
name="viewport"
>onComment is never called, and there is no attribute value, so the comment is removed if processed by dependent tooling like the marko compiler (and therefore marko-plugin-prettier).
Using HTML-style comments also throws an error because the parser expects a TypeScript type argument.
<meta
<!-- I throw Unexpected types argument -->
name="viewport"
>While after the attribute, the value is included in onAttrValue of the previous attribute.
<meta
name="viewport"
// I'm included in name="viewport".
>it parsed as an onAttrValue with a value of:
"viewport"
// I'm included in name="viewport".
I would have expected two values emitted, onAttrValue of "viewport" and onComment with // I'm included in name="viewport"..