Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments aren't emitted if they are in a tag #170

Open
AngusMorton opened this issue Dec 27, 2023 · 0 comments
Open

Comments aren't emitted if they are in a tag #170

AngusMorton opened this issue Dec 27, 2023 · 0 comments

Comments

@AngusMorton
Copy link

AngusMorton commented Dec 27, 2023

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 of onAttrValue.
  • 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"..

@AngusMorton AngusMorton changed the title Comments aren't emitted if they are before the first attribute of a tag Comments aren't emitted if they are in a tag Dec 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant