├── .changeset ├── README.md └── config.json ├── .eslintignore ├── .eslintrc.json ├── .fixpackrc ├── .github ├── CODE_OF_CONDUCT.md ├── ISSUE_TEMPLATE │ ├── Bug_report.md │ └── Feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── ci.yml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .lintstagedrc.json ├── .mocharc.json ├── .nycrc.json ├── .prettierignore ├── .prettierrc.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bench.mts ├── package.json ├── src ├── __tests__ │ ├── fixtures │ │ ├── argument-and-params │ │ │ ├── __snapshots__ │ │ │ │ └── argument-and-params.expected.txt │ │ │ └── input.marko │ │ ├── argument-attr-extra-whitespace │ │ │ ├── __snapshots__ │ │ │ │ └── argument-attr-extra-whitespace.expected.txt │ │ │ └── input.marko │ │ ├── argument-attr-multiple │ │ │ ├── __snapshots__ │ │ │ │ └── argument-attr-multiple.expected.txt │ │ │ └── input.marko │ │ ├── argument-attr │ │ │ ├── __snapshots__ │ │ │ │ └── argument-attr.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag-attr │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag-attr.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag-complex │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag-complex.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag-extra-whitespace │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag-extra-whitespace.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag-multiple │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag-multiple.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag-nested-parens │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag-nested-parens.expected.txt │ │ │ └── input.marko │ │ ├── argument-tag │ │ │ ├── __snapshots__ │ │ │ │ └── argument-tag.expected.txt │ │ │ └── input.marko │ │ ├── attr-bound │ │ │ ├── __snapshots__ │ │ │ │ └── attr-bound.expected.txt │ │ │ └── input.marko │ │ ├── attr-comma-multiline │ │ │ ├── __snapshots__ │ │ │ │ └── attr-comma-multiline.expected.txt │ │ │ └── input.marko │ │ ├── attr-complex-functions │ │ │ ├── __snapshots__ │ │ │ │ └── attr-complex-functions.expected.txt │ │ │ └── input.marko │ │ ├── attr-complex-instanceof │ │ │ ├── __snapshots__ │ │ │ │ └── attr-complex-instanceof.expected.txt │ │ │ └── input.marko │ │ ├── attr-complex-unary │ │ │ ├── __snapshots__ │ │ │ │ └── attr-complex-unary.expected.txt │ │ │ └── input.marko │ │ ├── attr-complex │ │ │ ├── __snapshots__ │ │ │ │ └── attr-complex.expected.txt │ │ │ └── input.marko │ │ ├── attr-concise-hyphens │ │ │ ├── __snapshots__ │ │ │ │ └── attr-concise-hyphens.expected.txt │ │ │ └── input.marko │ │ ├── attr-escape-characters │ │ │ ├── __snapshots__ │ │ │ │ └── attr-escape-characters.expected.txt │ │ │ └── input.marko │ │ ├── attr-escaped-dollar │ │ │ ├── __snapshots__ │ │ │ │ └── attr-escaped-dollar.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-2 │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-2.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-3 │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-3.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-4 │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-4.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-invalid-eof │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-invalid-eof.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-invalid │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-invalid.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped-multiple │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped-multiple.expected.txt │ │ │ └── input.marko │ │ ├── attr-grouped │ │ │ ├── __snapshots__ │ │ │ │ └── attr-grouped.expected.txt │ │ │ └── input.marko │ │ ├── attr-inc-and-dec │ │ │ ├── __snapshots__ │ │ │ │ └── attr-inc-and-dec.expected.txt │ │ │ └── input.marko │ │ ├── attr-inconsistent-commas │ │ │ ├── __snapshots__ │ │ │ │ └── attr-inconsistent-commas.expected.txt │ │ │ └── input.marko │ │ ├── attr-int-and-id │ │ │ ├── __snapshots__ │ │ │ │ └── attr-int-and-id.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-false │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-false.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-null │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-null.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-numbers │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-numbers.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-regex │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-regex.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-string-double-quotes │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-string-double-quotes.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-string-single-quotes │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-string-single-quotes.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-true │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-true.expected.txt │ │ │ └── input.marko │ │ ├── attr-literal-undefined │ │ │ ├── __snapshots__ │ │ │ │ └── attr-literal-undefined.expected.txt │ │ │ └── input.marko │ │ ├── attr-method-shorthand-with-type-parameters │ │ │ ├── __snapshots__ │ │ │ │ └── attr-method-shorthand-with-type-parameters.expected.txt │ │ │ └── input.marko │ │ ├── attr-method-shorthand │ │ │ ├── __snapshots__ │ │ │ │ └── attr-method-shorthand.expected.txt │ │ │ └── input.marko │ │ ├── attr-method-with-type-parameters │ │ │ ├── __snapshots__ │ │ │ │ └── attr-method-with-type-parameters.expected.txt │ │ │ └── input.marko │ │ ├── attr-multi-line-comment │ │ │ ├── __snapshots__ │ │ │ │ └── attr-multi-line-comment.expected.txt │ │ │ └── input.marko │ │ ├── attr-multi-line-string │ │ │ ├── __snapshots__ │ │ │ │ └── attr-multi-line-string.expected.txt │ │ │ └── input.marko │ │ ├── attr-name-with-html-chars │ │ │ ├── __snapshots__ │ │ │ │ └── attr-name-with-html-chars.expected.txt │ │ │ └── input.marko │ │ ├── attr-nested-literal-regex │ │ │ ├── __snapshots__ │ │ │ │ └── attr-nested-literal-regex.expected.txt │ │ │ └── input.marko │ │ ├── attr-no-value-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── attr-no-value-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── attr-no-value │ │ │ ├── __snapshots__ │ │ │ │ └── attr-no-value.expected.txt │ │ │ └── input.marko │ │ ├── attr-non-literal │ │ │ ├── __snapshots__ │ │ │ │ └── attr-non-literal.expected.txt │ │ │ └── input.marko │ │ ├── attr-object-expressions │ │ │ ├── __snapshots__ │ │ │ │ └── attr-object-expressions.expected.txt │ │ │ └── input.marko │ │ ├── attr-operator-whitespace-eof │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operator-whitespace-eof.expected.txt │ │ │ └── input.marko │ │ ├── attr-operators-newline-after │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operators-newline-after.expected.txt │ │ │ └── input.marko │ │ ├── attr-operators-newline-before │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operators-newline-before.expected.txt │ │ │ └── input.marko │ │ ├── attr-operators-space-after │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operators-space-after.expected.txt │ │ │ └── input.marko │ │ ├── attr-operators-space-before │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operators-space-before.expected.txt │ │ │ └── input.marko │ │ ├── attr-operators-space-between │ │ │ ├── __snapshots__ │ │ │ │ └── attr-operators-space-between.expected.txt │ │ │ └── input.marko │ │ ├── attr-regex-character-classes │ │ │ ├── __snapshots__ │ │ │ │ └── attr-regex-character-classes.expected.txt │ │ │ └── input.marko │ │ ├── attr-regexp │ │ │ ├── __snapshots__ │ │ │ │ └── attr-regexp.expected.txt │ │ │ └── input.marko │ │ ├── attr-simple-expression │ │ │ ├── __snapshots__ │ │ │ │ └── attr-simple-expression.expected.txt │ │ │ └── input.marko │ │ ├── attr-spread │ │ │ ├── __snapshots__ │ │ │ │ └── attr-spread.expected.txt │ │ │ └── input.marko │ │ ├── attr-unenclosed-whitespace-minus │ │ │ ├── __snapshots__ │ │ │ │ └── attr-unenclosed-whitespace-minus.expected.txt │ │ │ └── input.marko │ │ ├── attr-unenclosed-whitespace-multiple-attrs │ │ │ ├── __snapshots__ │ │ │ │ └── attr-unenclosed-whitespace-multiple-attrs.expected.txt │ │ │ └── input.marko │ │ ├── attr-unenclosed-whitespace-odd │ │ │ ├── __snapshots__ │ │ │ │ └── attr-unenclosed-whitespace-odd.expected.txt │ │ │ └── input.marko │ │ ├── attr-unenclosed-whitespace │ │ │ ├── __snapshots__ │ │ │ │ └── attr-unenclosed-whitespace.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-missing │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-missing.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-single-quote-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-single-quote-escaped.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-string-concat │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-string-concat.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-typeof-comma │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-typeof-comma.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-typeof-no-space-prefix │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-typeof-no-space-prefix.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-typeof │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-typeof.expected.txt │ │ │ └── input.marko │ │ ├── attr-value-void │ │ │ ├── __snapshots__ │ │ │ │ └── attr-value-void.expected.txt │ │ │ └── input.marko │ │ ├── attr-with-parens-and-double-quoted-strings │ │ │ ├── __snapshots__ │ │ │ │ └── attr-with-parens-and-double-quoted-strings.expected.txt │ │ │ └── input.marko │ │ ├── attr-with-parens-and-single-quoted-strings │ │ │ ├── __snapshots__ │ │ │ │ └── attr-with-parens-and-single-quoted-strings.expected.txt │ │ │ └── input.marko │ │ ├── attr-with-right-angle-bracket-parens │ │ │ ├── __snapshots__ │ │ │ │ └── attr-with-right-angle-bracket-parens.expected.txt │ │ │ └── input.marko │ │ ├── attr-with-right-angle-bracket │ │ │ ├── __snapshots__ │ │ │ │ └── attr-with-right-angle-bracket.expected.txt │ │ │ └── input.marko │ │ ├── attr-without-delimiters │ │ │ ├── __snapshots__ │ │ │ │ └── attr-without-delimiters.expected.txt │ │ │ └── input.marko │ │ ├── backtick-string-eof │ │ │ ├── __snapshots__ │ │ │ │ └── backtick-string-eof.expected.txt │ │ │ └── input.marko │ │ ├── backtick-string-nested-with-space │ │ │ ├── __snapshots__ │ │ │ │ └── backtick-string-nested-with-space.expected.txt │ │ │ └── input.marko │ │ ├── backtick-string-placeholder-newline │ │ │ ├── __snapshots__ │ │ │ │ └── backtick-string-placeholder-newline.expected.txt │ │ │ └── input.marko │ │ ├── backtick-string │ │ │ ├── __snapshots__ │ │ │ │ └── backtick-string.expected.txt │ │ │ └── input.marko │ │ ├── bad-tag-indent │ │ │ ├── __snapshots__ │ │ │ │ └── bad-tag-indent.expected.txt │ │ │ └── input.marko │ │ ├── cdata-2 │ │ │ ├── __snapshots__ │ │ │ │ └── cdata-2.expected.txt │ │ │ └── input.marko │ │ ├── cdata-pos │ │ │ ├── __snapshots__ │ │ │ │ └── cdata-pos.expected.txt │ │ │ └── input.marko │ │ ├── cdata │ │ │ ├── __snapshots__ │ │ │ │ └── cdata.expected.txt │ │ │ └── input.marko │ │ ├── coma-after-open-tag │ │ │ ├── __snapshots__ │ │ │ │ └── coma-after-open-tag.expected.txt │ │ │ └── input.marko │ │ ├── comma-after-tag-variable │ │ │ ├── __snapshots__ │ │ │ │ └── comma-after-tag-variable.expected.txt │ │ │ └── input.marko │ │ ├── comma-ends-attr-operators │ │ │ ├── __snapshots__ │ │ │ │ └── comma-ends-attr-operators.expected.txt │ │ │ └── input.marko │ │ ├── commas-relax │ │ │ ├── __snapshots__ │ │ │ │ └── commas-relax.expected.txt │ │ │ └── input.marko │ │ ├── commas-require-all-attrs-first │ │ │ ├── __snapshots__ │ │ │ │ └── commas-require-all-attrs-first.expected.txt │ │ │ └── input.marko │ │ ├── commas-require-all-attrs-last │ │ │ ├── __snapshots__ │ │ │ │ └── commas-require-all-attrs-last.expected.txt │ │ │ └── input.marko │ │ ├── comment-concise-js-block-trailing │ │ │ ├── __snapshots__ │ │ │ │ └── comment-concise-js-block-trailing.expected.txt │ │ │ └── input.marko │ │ ├── comment-concise-js-block │ │ │ ├── __snapshots__ │ │ │ │ └── comment-concise-js-block.expected.txt │ │ │ └── input.marko │ │ ├── comment-concise-js-line │ │ │ ├── __snapshots__ │ │ │ │ └── comment-concise-js-line.expected.txt │ │ │ └── input.marko │ │ ├── comments-within-open-tag │ │ │ ├── __snapshots__ │ │ │ │ └── comments-within-open-tag.expected.txt │ │ │ └── input.marko │ │ ├── comments-within-tag-body │ │ │ ├── __snapshots__ │ │ │ │ └── comments-within-tag-body.expected.txt │ │ │ └── input.marko │ │ ├── complex-attr-name │ │ │ ├── __snapshots__ │ │ │ │ └── complex-attr-name.expected.txt │ │ │ └── input.marko │ │ ├── complex │ │ │ ├── __snapshots__ │ │ │ │ └── complex.expected.txt │ │ │ └── input.marko │ │ ├── concise-contentplaceholder-html-start │ │ │ ├── __snapshots__ │ │ │ │ └── concise-contentplaceholder-html-start.expected.txt │ │ │ └── input.marko │ │ ├── concise-contentplaceholder-start │ │ │ ├── __snapshots__ │ │ │ │ └── concise-contentplaceholder-start.expected.txt │ │ │ └── input.marko │ │ ├── concise-hyphen-after-tag-name │ │ │ ├── __snapshots__ │ │ │ │ └── concise-hyphen-after-tag-name.expected.txt │ │ │ └── input.marko │ │ ├── concise-multiline-content │ │ │ ├── __snapshots__ │ │ │ │ └── concise-multiline-content.expected.txt │ │ │ └── input.marko │ │ ├── css-calc │ │ │ ├── __snapshots__ │ │ │ │ └── css-calc.expected.txt │ │ │ └── input.marko │ │ ├── css-grid │ │ │ ├── __snapshots__ │ │ │ │ └── css-grid.expected.txt │ │ │ └── input.marko │ │ ├── declaration │ │ │ ├── __snapshots__ │ │ │ │ └── declaration.expected.txt │ │ │ └── input.marko │ │ ├── default-attr-comma │ │ │ ├── __snapshots__ │ │ │ │ └── default-attr-comma.expected.txt │ │ │ └── input.marko │ │ ├── default-attr-no-space │ │ │ ├── __snapshots__ │ │ │ │ └── default-attr-no-space.expected.txt │ │ │ └── input.marko │ │ ├── default-attr │ │ │ ├── __snapshots__ │ │ │ │ └── default-attr.expected.txt │ │ │ └── input.marko │ │ ├── double-hyphen-block │ │ │ ├── __snapshots__ │ │ │ │ └── double-hyphen-block.expected.txt │ │ │ └── input.marko │ │ ├── double-hyphen-line-start │ │ │ ├── __snapshots__ │ │ │ │ └── double-hyphen-line-start.expected.txt │ │ │ └── input.marko │ │ ├── double-hyphen-line │ │ │ ├── __snapshots__ │ │ │ │ └── double-hyphen-line.expected.txt │ │ │ └── input.marko │ │ ├── dtd │ │ │ ├── __snapshots__ │ │ │ │ └── dtd.expected.txt │ │ │ └── input.marko │ │ ├── empty-closing-tag │ │ │ ├── __snapshots__ │ │ │ │ └── empty-closing-tag.expected.txt │ │ │ └── input.marko │ │ ├── empty-closing-tag2 │ │ │ ├── __snapshots__ │ │ │ │ └── empty-closing-tag2.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-argument │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-argument.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-name │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-name.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-value-js-comment-comment-concise │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-value-js-comment-comment-concise.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-value-js-comment-comment │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-value-js-comment-comment.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-value-string │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-value-string.expected.txt │ │ │ └── input.marko │ │ ├── eof-attr-value │ │ │ ├── __snapshots__ │ │ │ │ └── eof-attr-value.expected.txt │ │ │ └── input.marko │ │ ├── eof-doctype │ │ │ ├── __snapshots__ │ │ │ │ └── eof-doctype.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-body-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-body-escaped.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-body-non-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-body-non-escaped.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-concise │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-concise.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-script-body-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-script-body-escaped.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-script-body-non-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-script-body-non-escaped.expected.txt │ │ │ └── input.marko │ │ ├── eof-placeholder-string │ │ │ ├── __snapshots__ │ │ │ │ └── eof-placeholder-string.expected.txt │ │ │ └── input.marko │ │ ├── eof-script-body │ │ │ ├── __snapshots__ │ │ │ │ └── eof-script-body.expected.txt │ │ │ └── input.marko │ │ ├── eof-style │ │ │ ├── __snapshots__ │ │ │ │ └── eof-style.expected.txt │ │ │ └── input.marko │ │ ├── eof-tag-start │ │ │ ├── __snapshots__ │ │ │ │ └── eof-tag-start.expected.txt │ │ │ └── input.marko │ │ ├── eof-xml-declaration │ │ │ ├── __snapshots__ │ │ │ │ └── eof-xml-declaration.expected.txt │ │ │ └── input.marko │ │ ├── html-block-after-tag │ │ │ ├── __snapshots__ │ │ │ │ └── html-block-after-tag.expected.txt │ │ │ └── input.marko │ │ ├── html-comment-tag │ │ │ ├── __snapshots__ │ │ │ │ └── html-comment-tag.expected.txt │ │ │ └── input.marko │ │ ├── html-comments-ignore-placeholders │ │ │ ├── __snapshots__ │ │ │ │ └── html-comments-ignore-placeholders.expected.txt │ │ │ └── input.marko │ │ ├── html-comments │ │ │ ├── __snapshots__ │ │ │ │ └── html-comments.expected.txt │ │ │ └── input.marko │ │ ├── ignoreNonstandardStringPlaceholders │ │ │ ├── __snapshots__ │ │ │ │ └── ignoreNonstandardStringPlaceholders.expected.txt │ │ │ └── input.marko │ │ ├── ignorePlaceholders-attr-double-escaped-dollar-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── ignorePlaceholders-attr-double-escaped-dollar-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── ignorePlaceholders-attr-escaped-dollar-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── ignorePlaceholders-attr-escaped-dollar-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── ignorePlaceholders-attr-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── ignorePlaceholders-attr-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── invalid-closing-tag │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-closing-tag.expected.txt │ │ │ └── input.marko │ │ ├── invalid-missing-tag-var │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-missing-tag-var.expected.txt │ │ │ └── input.marko │ │ ├── invalid-multiple-tag-params │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-multiple-tag-params.expected.txt │ │ │ └── input.marko │ │ ├── invalid-multiple-tag-type-params │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-multiple-tag-type-params.expected.txt │ │ │ └── input.marko │ │ ├── invalid-type-args-after-space │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-type-args-after-space.expected.txt │ │ │ └── input.marko │ │ ├── invalid-type-params-after-args │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-type-params-after-args.expected.txt │ │ │ └── input.marko │ │ ├── invalid-type-params-after-method │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-type-params-after-method.expected.txt │ │ │ └── input.marko │ │ ├── invalid-type-params-after-params │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-type-params-after-params.expected.txt │ │ │ └── input.marko │ │ ├── invalid-type-params-attr-arg │ │ │ ├── __snapshots__ │ │ │ │ └── invalid-type-params-attr-arg.expected.txt │ │ │ └── input.marko │ │ ├── mixed-bad-indentation │ │ │ ├── __snapshots__ │ │ │ │ └── mixed-bad-indentation.expected.txt │ │ │ └── input.marko │ │ ├── mixed-cdata │ │ │ ├── __snapshots__ │ │ │ │ └── mixed-cdata.expected.txt │ │ │ └── input.marko │ │ ├── mixed-comment │ │ │ ├── __snapshots__ │ │ │ │ └── mixed-comment.expected.txt │ │ │ └── input.marko │ │ ├── mixed-invalid │ │ │ ├── __snapshots__ │ │ │ │ └── mixed-invalid.expected.txt │ │ │ └── input.marko │ │ ├── mixed-open-tag-only │ │ │ ├── __snapshots__ │ │ │ │ └── mixed-open-tag-only.expected.txt │ │ │ └── input.marko │ │ ├── mixed │ │ │ ├── __snapshots__ │ │ │ │ └── mixed.expected.txt │ │ │ └── input.marko │ │ ├── multi-line-attrs │ │ │ ├── __snapshots__ │ │ │ │ └── multi-line-attrs.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block-empty │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block-empty.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block-missing-end │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block-missing-end.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block-nested-empty │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block-nested-empty.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block-nested │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block-nested.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block-same-line │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block-same-line.expected.txt │ │ │ └── input.marko │ │ ├── multiline-html-block │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-html-block.expected.txt │ │ │ └── input.marko │ │ ├── multiline-text-block-bad │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-text-block-bad.expected.txt │ │ │ └── input.marko │ │ ├── multiline-text-block-with-hyphens │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-text-block-with-hyphens.expected.txt │ │ │ └── input.marko │ │ ├── multiline-text-block │ │ │ ├── __snapshots__ │ │ │ │ └── multiline-text-block.expected.txt │ │ │ └── input.marko │ │ ├── multiple-tags-on-line-close-next │ │ │ ├── __snapshots__ │ │ │ │ └── multiple-tags-on-line-close-next.expected.txt │ │ │ └── input.marko │ │ ├── nested-pyramid │ │ │ ├── __snapshots__ │ │ │ │ └── nested-pyramid.expected.txt │ │ │ └── input.marko │ │ ├── nested-siblings │ │ │ ├── __snapshots__ │ │ │ │ └── nested-siblings.expected.txt │ │ │ └── input.marko │ │ ├── nested-tags │ │ │ ├── __snapshots__ │ │ │ │ └── nested-tags.expected.txt │ │ │ └── input.marko │ │ ├── nested-text │ │ │ ├── __snapshots__ │ │ │ │ └── nested-text.expected.txt │ │ │ └── input.marko │ │ ├── open-tag-only-with-body-concise │ │ │ ├── __snapshots__ │ │ │ │ └── open-tag-only-with-body-concise.expected.txt │ │ │ └── input.marko │ │ ├── open-tag-only-with-body │ │ │ ├── __snapshots__ │ │ │ │ └── open-tag-only-with-body.expected.txt │ │ │ └── input.marko │ │ ├── open-tag-only │ │ │ ├── __snapshots__ │ │ │ │ └── open-tag-only.expected.txt │ │ │ └── input.marko │ │ ├── param-tag │ │ │ ├── __snapshots__ │ │ │ │ └── param-tag.expected.txt │ │ │ └── input.marko │ │ ├── parsed-text-placeholder-in-template-literal-string │ │ │ ├── __snapshots__ │ │ │ │ └── parsed-text-placeholder-in-template-literal-string.expected.txt │ │ │ └── input.marko │ │ ├── parsed-text-style-tag │ │ │ ├── __snapshots__ │ │ │ │ └── parsed-text-style-tag.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-invalid │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-invalid.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-string-value-mixed-quotes │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-string-value-mixed-quotes.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-string-value-parens │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-string-value-parens.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-string-value │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-string-value.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-within-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-within-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-within-string-complex │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-within-string-complex.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-within-string-simple │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-within-string-simple.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-attr-wrapped │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-attr-wrapped.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-backslash │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-backslash.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-body-multi-line-js-comment │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-body-multi-line-js-comment.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-body-single-line-js-comment │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-body-single-line-js-comment.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-body-text │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-body-text.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-empty │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-empty.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-escape │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-escape.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-no-escape │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-no-escape.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-tag-name-concise │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-tag-name-concise.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-tag-name-html │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-tag-name-html.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr-escaped-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr-escaped-escaped.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr-escaped │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr-escaped.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr-last-concise │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr-last-concise.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr-last-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr-last-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr-last │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr-last.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-unnamed-attr │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-unnamed-attr.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-within-placeholder-escaping │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-within-placeholder-escaping.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-within-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-within-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-within-script-tag │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-within-script-tag.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-within-script-within-string │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-within-script-within-string.expected.txt │ │ │ └── input.marko │ │ ├── placeholder-within-string-newlines │ │ │ ├── __snapshots__ │ │ │ │ └── placeholder-within-string-newlines.expected.txt │ │ │ └── input.marko │ │ ├── root-el │ │ │ ├── __snapshots__ │ │ │ │ └── root-el.expected.txt │ │ │ └── input.marko │ │ ├── root-els │ │ │ ├── __snapshots__ │ │ │ │ └── root-els.expected.txt │ │ │ └── input.marko │ │ ├── script-concise-invalid-nested-tag │ │ │ ├── __snapshots__ │ │ │ │ └── script-concise-invalid-nested-tag.expected.txt │ │ │ └── input.marko │ │ ├── script-concise │ │ │ ├── __snapshots__ │ │ │ │ └── script-concise.expected.txt │ │ │ └── input.marko │ │ ├── script-empty-concise │ │ │ ├── __snapshots__ │ │ │ │ └── script-empty-concise.expected.txt │ │ │ └── input.marko │ │ ├── script-escaped-placeholder │ │ │ ├── __snapshots__ │ │ │ │ └── script-escaped-placeholder.expected.txt │ │ │ └── input.marko │ │ ├── script-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── script-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── script-single-line-comment │ │ │ ├── __snapshots__ │ │ │ │ └── script-single-line-comment.expected.txt │ │ │ └── input.marko │ │ ├── script-tag-entities │ │ │ ├── __snapshots__ │ │ │ │ └── script-tag-entities.expected.txt │ │ │ └── input.marko │ │ ├── script-with-strings │ │ │ ├── __snapshots__ │ │ │ │ └── script-with-strings.expected.txt │ │ │ └── input.marko │ │ ├── script │ │ │ ├── __snapshots__ │ │ │ │ └── script.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-division │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-division.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-html │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-html.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-invalid-comment │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-invalid-comment.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-multiline-comment │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-multiline-comment.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-nested │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-nested.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-regex │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-regex.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-single-line-comment │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-single-line-comment.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-template-literal-href │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-template-literal-href.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block-with-semi-colon │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block-with-semi-colon.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-block │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-block.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-comment │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-comment.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-eof │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-eof.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-continue-chain │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-continue-chain.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-continue │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-continue.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-html │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-html.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-multiline-comments │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-multiline-comments.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-no-middle-html │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-no-middle-html.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-no-middle │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-no-middle.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-regex-open-bracket │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-regex-open-bracket.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-regex-open-curly │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-regex-open-curly.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-template-literal │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-template-literal.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line-trailing-line-comment │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line-trailing-line-comment.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-line │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-line.expected.txt │ │ │ └── input.marko │ │ ├── scriptlet-terminated-by-semi-colon │ │ │ ├── __snapshots__ │ │ │ │ └── scriptlet-terminated-by-semi-colon.expected.txt │ │ │ └── input.marko │ │ ├── self-closed-tag-attrs │ │ │ ├── __snapshots__ │ │ │ │ └── self-closed-tag-attrs.expected.txt │ │ │ └── input.marko │ │ ├── self-closed-tag │ │ │ ├── __snapshots__ │ │ │ │ └── self-closed-tag.expected.txt │ │ │ └── input.marko │ │ ├── self-closing-open-tag-only │ │ │ ├── __snapshots__ │ │ │ │ └── self-closing-open-tag-only.expected.txt │ │ │ └── input.marko │ │ ├── semicolon-concise │ │ │ ├── __snapshots__ │ │ │ │ └── semicolon-concise.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-class-dynamic-literal-prefix │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-class-dynamic-literal-prefix.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-class-dynamic-literal-suffix │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-class-dynamic-literal-suffix.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-class-dynamic │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-class-dynamic.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-class-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-class-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-closing-html │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-closing-html.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-closing-html2 │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-closing-html2.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-closing-html3 │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-closing-html3.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-div-id-class-multiple │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-div-id-class-multiple.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-div-id-class │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-div-id-class.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-div-id │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-div-id.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-class-html │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-class-html.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-class │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-class.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-dup │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-dup.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-dynamic-literal-prefix │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-dynamic-literal-prefix.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-dynamic-literal-suffix │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-dynamic-literal-suffix.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-dynamic │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-dynamic.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-id │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-id.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-mixed-concise │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-mixed-concise.expected.txt │ │ │ └── input.marko │ │ ├── shorthand-mixed │ │ │ ├── __snapshots__ │ │ │ │ └── shorthand-mixed.expected.txt │ │ │ └── input.marko │ │ ├── simple-text-delimited │ │ │ ├── __snapshots__ │ │ │ │ └── simple-text-delimited.expected.txt │ │ │ └── input.marko │ │ ├── single-line-text-block-nested │ │ │ ├── __snapshots__ │ │ │ │ └── single-line-text-block-nested.expected.txt │ │ │ └── input.marko │ │ ├── single-line-text-block-sibling │ │ │ ├── __snapshots__ │ │ │ │ └── single-line-text-block-sibling.expected.txt │ │ │ └── input.marko │ │ ├── single-line-text-block │ │ │ ├── __snapshots__ │ │ │ │ └── single-line-text-block.expected.txt │ │ │ └── input.marko │ │ ├── statement-concise-only │ │ │ ├── __snapshots__ │ │ │ │ └── statement-concise-only.expected.txt │ │ │ └── input.marko │ │ ├── statement-root-only │ │ │ ├── __snapshots__ │ │ │ │ └── statement-root-only.expected.txt │ │ │ └── input.marko │ │ ├── stray-forward-slash-within-open-tag │ │ │ ├── __snapshots__ │ │ │ │ └── stray-forward-slash-within-open-tag.expected.txt │ │ │ └── input.marko │ │ ├── stray-special-chars │ │ │ ├── __snapshots__ │ │ │ │ └── stray-special-chars.expected.txt │ │ │ └── input.marko │ │ ├── strip-bom │ │ │ ├── __snapshots__ │ │ │ │ └── strip-bom.expected.txt │ │ │ ├── input-good.marko │ │ │ ├── input.htmljs.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-literal-prefix-attrs │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-literal-prefix-attrs.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-literal-prefix-suffix │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-literal-prefix-suffix.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-literal-prefix │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-literal-prefix.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-literal-suffix │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-literal-suffix.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-shorthand-id │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-shorthand-id.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-simple-empty-close │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-simple-empty-close.expected.txt │ │ │ └── input.marko │ │ ├── tag-name-expression-simple │ │ │ ├── __snapshots__ │ │ │ │ └── tag-name-expression-simple.expected.txt │ │ │ └── input.marko │ │ ├── tag-params-with-type-parameters │ │ │ ├── __snapshots__ │ │ │ │ └── tag-params-with-type-parameters.expected.txt │ │ │ └── input.marko │ │ ├── tag-type-argument-arrow-function │ │ │ ├── __snapshots__ │ │ │ │ └── tag-type-argument-arrow-function.expected.txt │ │ │ └── input.marko │ │ ├── tag-var-before-concise-text │ │ │ ├── __snapshots__ │ │ │ │ └── tag-var-before-concise-text.expected.txt │ │ │ └── input.marko │ │ ├── tag-var-declaration │ │ │ ├── __snapshots__ │ │ │ │ └── tag-var-declaration.expected.txt │ │ │ └── input.marko │ │ ├── tag-var-type-with-parens │ │ │ ├── __snapshots__ │ │ │ │ └── tag-var-type-with-parens.expected.txt │ │ │ └── input.marko │ │ ├── tag-var-with-params │ │ │ ├── __snapshots__ │ │ │ │ └── tag-var-with-params.expected.txt │ │ │ └── input.marko │ │ ├── tag-with-type-arguments │ │ │ ├── __snapshots__ │ │ │ │ └── tag-with-type-arguments.expected.txt │ │ │ └── input.marko │ │ ├── text-after-semicolon │ │ │ ├── __snapshots__ │ │ │ │ └── text-after-semicolon.expected.txt │ │ │ └── input.marko │ │ ├── text-after-tag │ │ │ ├── __snapshots__ │ │ │ │ └── text-after-tag.expected.txt │ │ │ └── input.marko │ │ ├── text-parse-mode-concise │ │ │ ├── __snapshots__ │ │ │ │ └── text-parse-mode-concise.expected.txt │ │ │ └── input.marko │ │ ├── text-parse-mode-delimited-block │ │ │ ├── __snapshots__ │ │ │ │ └── text-parse-mode-delimited-block.expected.txt │ │ │ └── input.marko │ │ ├── text-parse-mode-html │ │ │ ├── __snapshots__ │ │ │ │ └── text-parse-mode-html.expected.txt │ │ │ └── input.marko │ │ ├── textarea │ │ │ ├── __snapshots__ │ │ │ │ └── textarea.expected.txt │ │ │ └── input.marko │ │ ├── ts-function-type │ │ │ ├── __snapshots__ │ │ │ │ └── ts-function-type.expected.txt │ │ │ └── input.marko │ │ ├── ts-generic-complex │ │ │ ├── __snapshots__ │ │ │ │ └── ts-generic-complex.expected.txt │ │ │ └── input.marko │ │ ├── ts-generic-function-type │ │ │ ├── __snapshots__ │ │ │ │ └── ts-generic-function-type.expected.txt │ │ │ └── input.marko │ │ ├── ts-generic-simple │ │ │ ├── __snapshots__ │ │ │ │ └── ts-generic-simple.expected.txt │ │ │ └── input.marko │ │ ├── ts-intersection-type │ │ │ ├── __snapshots__ │ │ │ │ └── ts-intersection-type.expected.txt │ │ │ └── input.marko │ │ ├── ts-keyof-typeof │ │ │ ├── __snapshots__ │ │ │ │ └── ts-keyof-typeof.expected.txt │ │ │ └── input.marko │ │ ├── ts-nested-generics │ │ │ ├── __snapshots__ │ │ │ │ └── ts-nested-generics.expected.txt │ │ │ └── input.marko │ │ ├── ts-static-const-arrow-function-return-type │ │ │ ├── __snapshots__ │ │ │ │ └── ts-static-const-arrow-function-return-type.expected.txt │ │ │ └── input.marko │ │ ├── ts-static-type │ │ │ ├── __snapshots__ │ │ │ │ └── ts-static-type.expected.txt │ │ │ └── input.marko │ │ ├── ts-tag-var-type-generic │ │ │ ├── __snapshots__ │ │ │ │ └── ts-tag-var-type-generic.expected.txt │ │ │ └── input.marko │ │ ├── ts-type-statement │ │ │ ├── __snapshots__ │ │ │ │ └── ts-type-statement.expected.txt │ │ │ └── input.marko │ │ ├── ts-unary-exression │ │ │ ├── __snapshots__ │ │ │ │ └── ts-unary-exression.expected.txt │ │ │ └── input.marko │ │ ├── unary-as-member-expression │ │ │ ├── __snapshots__ │ │ │ │ └── unary-as-member-expression.expected.txt │ │ │ └── input.marko │ │ ├── unclosed-tag-eof │ │ │ ├── __snapshots__ │ │ │ │ └── unclosed-tag-eof.expected.txt │ │ │ └── input.marko │ │ ├── var-new-Date │ │ │ ├── __snapshots__ │ │ │ │ └── var-new-Date.expected.txt │ │ │ └── input.marko │ │ ├── var │ │ │ ├── __snapshots__ │ │ │ │ └── var.expected.txt │ │ │ └── input.marko │ │ ├── void-tag-self-closed │ │ │ ├── __snapshots__ │ │ │ │ └── void-tag-self-closed.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-around-equals │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-around-equals.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-empty-lines-indent │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-empty-lines-indent.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-empty-lines │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-empty-lines.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-newline-indent │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-newline-indent.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-newline │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-newline.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-only-reset-indent │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-only-reset-indent.expected.txt │ │ │ └── input.marko │ │ ├── whitespace-preservation │ │ │ ├── __snapshots__ │ │ │ │ └── whitespace-preservation.expected.txt │ │ │ └── input.marko │ │ ├── xml-declaration-ill-formed │ │ │ ├── __snapshots__ │ │ │ │ └── xml-declaration-ill-formed.expected.txt │ │ │ └── input.marko │ │ └── xml-declaration │ │ │ ├── __snapshots__ │ │ │ └── xml-declaration.expected.txt │ │ │ └── input.marko │ └── main.test.ts ├── core │ └── Parser.ts ├── index.ts ├── internal.ts ├── states │ ├── ATTRIBUTE.ts │ ├── BEGIN_DELIMITED_HTML_BLOCK.ts │ ├── CDATA.ts │ ├── CLOSE_TAG.ts │ ├── CONCISE_HTML_CONTENT.ts │ ├── DECLARATION.ts │ ├── DTD.ts │ ├── EXPRESSION.ts │ ├── HTML_COMMENT.ts │ ├── HTML_CONTENT.ts │ ├── INLINE_SCRIPT.ts │ ├── JS_COMMENT_BLOCK.ts │ ├── JS_COMMENT_LINE.ts │ ├── OPEN_TAG.ts │ ├── PARSED_STRING.ts │ ├── PARSED_TEXT_CONTENT.ts │ ├── PLACEHOLDER.ts │ ├── REGULAR_EXPRESSION.ts │ ├── STRING.ts │ ├── TAG_NAME.ts │ ├── TEMPLATE_STRING.ts │ └── index.ts └── util │ ├── constants.ts │ └── util.ts └── tsconfig.json /.changeset/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.changeset/README.md -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.changeset/config.json -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.fixpackrc: -------------------------------------------------------------------------------- 1 | { 2 | "quiet": true 3 | } 4 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.github/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.github/ISSUE_TEMPLATE/Bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/Feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.github/ISSUE_TEMPLATE/Feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx --no-install lint-staged 2 | -------------------------------------------------------------------------------- /.lintstagedrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.lintstagedrc.json -------------------------------------------------------------------------------- /.mocharc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.mocharc.json -------------------------------------------------------------------------------- /.nycrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.nycrc.json -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/README.md -------------------------------------------------------------------------------- /bench.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/bench.mts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/package.json -------------------------------------------------------------------------------- /src/__tests__/fixtures/argument-and-params/__snapshots__/argument-and-params.expected.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/argument-and-params/__snapshots__/argument-and-params.expected.txt -------------------------------------------------------------------------------- /src/__tests__/fixtures/argument-and-params/input.marko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/argument-and-params/input.marko -------------------------------------------------------------------------------- /src/__tests__/fixtures/argument-attr-extra-whitespace/__snapshots__/argument-attr-extra-whitespace.expected.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/argument-attr-extra-whitespace/__snapshots__/argument-attr-extra-whitespace.expected.txt -------------------------------------------------------------------------------- /src/__tests__/fixtures/argument-attr-extra-whitespace/input.marko: -------------------------------------------------------------------------------- 1 |
2 |
--------------------------------------------------------------------------------
/src/__tests__/fixtures/semicolon-concise/__snapshots__/semicolon-concise.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/semicolon-concise/__snapshots__/semicolon-concise.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/semicolon-concise/input.marko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/semicolon-concise/input.marko
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic-literal-prefix/__snapshots__/shorthand-class-dynamic-literal-prefix.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-class-dynamic-literal-prefix/__snapshots__/shorthand-class-dynamic-literal-prefix.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic-literal-prefix/input.marko:
--------------------------------------------------------------------------------
1 | .bar${data.foo}
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic-literal-suffix/__snapshots__/shorthand-class-dynamic-literal-suffix.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-class-dynamic-literal-suffix/__snapshots__/shorthand-class-dynamic-literal-suffix.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic-literal-suffix/input.marko:
--------------------------------------------------------------------------------
1 | .${data.foo}-bar
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic/__snapshots__/shorthand-class-dynamic.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-class-dynamic/__snapshots__/shorthand-class-dynamic.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-dynamic/input.marko:
--------------------------------------------------------------------------------
1 | span.${data.foo}
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-self-closed/__snapshots__/shorthand-class-self-closed.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-class-self-closed/__snapshots__/shorthand-class-self-closed.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-class-self-closed/input.marko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-class-self-closed/input.marko
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-closing-html/__snapshots__/shorthand-closing-html.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-closing-html/__snapshots__/shorthand-closing-html.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-closing-html/input.marko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-closing-html/input.marko
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-closing-html2/__snapshots__/shorthand-closing-html2.expected.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/marko-js/htmljs-parser/HEAD/src/__tests__/fixtures/shorthand-closing-html2/__snapshots__/shorthand-closing-html2.expected.txt
--------------------------------------------------------------------------------
/src/__tests__/fixtures/shorthand-closing-html2/input.marko:
--------------------------------------------------------------------------------
1 | <#foo>
2 |