gitextract_ve75nsgi/ ├── .claude/ │ ├── CLAUDE.md │ ├── commands/ │ │ └── add-rule.md │ └── rules/ │ ├── coding-style.md │ ├── rule-document.md │ └── writing-rule-test.md ├── .codecov.yml ├── .cspell.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── pull_request_template.md │ └── workflows/ │ ├── main.yml │ ├── sementic-pr.yml │ └── update-baseline-bcd.yml ├── .gitignore ├── .husky/ │ └── pre-push ├── .nvmrc ├── .prettierignore ├── .vscode/ │ └── settings.json ├── .yarn/ │ └── releases/ │ └── yarn-4.9.1.cjs ├── .yarnrc.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── docs/ │ ├── angular-template/ │ │ ├── getting-started.md │ │ ├── rules/ │ │ │ ├── class-spacing.md │ │ │ ├── no-duplicate-class.md │ │ │ ├── no-ineffective-attrs.md │ │ │ ├── no-invalid-attr-value.md │ │ │ ├── no-obsolete-attrs.md │ │ │ ├── no-obsolete-tags.md │ │ │ └── use-baseline.md │ │ └── rules.md │ ├── cli.md │ ├── developer-guide.md │ ├── disabling-rules.md │ ├── faq.md │ ├── getting-started.md │ ├── integrating-template-engine.md │ ├── react/ │ │ ├── getting-started.md │ │ ├── rules/ │ │ │ ├── classname-spacing.md │ │ │ ├── no-duplicate-classname.md │ │ │ ├── no-ineffective-attrs.md │ │ │ ├── no-invalid-attr-value.md │ │ │ ├── no-obsolete-attrs.md │ │ │ ├── no-obsolete-tags.md │ │ │ └── use-baseline.md │ │ └── rules.md │ ├── rules/ │ │ ├── attrs-newline.md │ │ ├── class-spacing.md │ │ ├── css-no-empty-blocks.md │ │ ├── element-newline.md │ │ ├── head-order.md │ │ ├── id-naming-convention.md │ │ ├── indent.md │ │ ├── lowercase.md │ │ ├── max-element-depth.md │ │ ├── no-abstract-roles.md │ │ ├── no-accesskey-attrs.md │ │ ├── no-aria-hidden-body.md │ │ ├── no-aria-hidden-on-focusable.md │ │ ├── no-duplicate-attrs.md │ │ ├── no-duplicate-class.md │ │ ├── no-duplicate-id.md │ │ ├── no-duplicate-in-head.md │ │ ├── no-empty-headings.md │ │ ├── no-extra-spacing-attrs.md │ │ ├── no-extra-spacing-tags.md │ │ ├── no-extra-spacing-text.md │ │ ├── no-heading-inside-button.md │ │ ├── no-ineffective-attrs.md │ │ ├── no-inline-styles.md │ │ ├── no-invalid-attr-value.md │ │ ├── no-invalid-entity.md │ │ ├── no-invalid-role.md │ │ ├── no-multiple-empty-lines.md │ │ ├── no-multiple-h1.md │ │ ├── no-nested-interactive.md │ │ ├── no-non-scalable-viewport.md │ │ ├── no-obsolete-attrs.md │ │ ├── no-obsolete-tags.md │ │ ├── no-positive-tabindex.md │ │ ├── no-redundant-role.md │ │ ├── no-restricted-attr-values.md │ │ ├── no-restricted-attrs.md │ │ ├── no-restricted-tags.md │ │ ├── no-script-style-type.md │ │ ├── no-skip-heading-levels.md │ │ ├── no-target-blank.md │ │ ├── no-trailing-spaces.md │ │ ├── no-whitespace-only-children.md │ │ ├── prefer-https.md │ │ ├── quotes.md │ │ ├── require-attrs.md │ │ ├── require-button-type.md │ │ ├── require-closing-tags.md │ │ ├── require-content.md │ │ ├── require-details-summary.md │ │ ├── require-doctype.md │ │ ├── require-explicit-size.md │ │ ├── require-form-method.md │ │ ├── require-frame-title.md │ │ ├── require-img-alt.md │ │ ├── require-input-label.md │ │ ├── require-lang.md │ │ ├── require-li-container.md │ │ ├── require-meta-charset.md │ │ ├── require-meta-description.md │ │ ├── require-meta-viewport.md │ │ ├── require-open-graph-protocol.md │ │ ├── require-title.md │ │ ├── sort-attrs.md │ │ ├── svg-require-viewbox.md │ │ └── use-baseline.md │ ├── rules.md │ └── svelte/ │ ├── getting-started.md │ ├── rules/ │ │ ├── class-spacing.md │ │ ├── no-duplicate-class.md │ │ ├── no-ineffective-attrs.md │ │ ├── no-invalid-attr-value.md │ │ ├── no-obsolete-attrs.md │ │ ├── no-obsolete-tags.md │ │ └── use-baseline.md │ └── rules.md ├── eslint.config.js ├── lerna.json ├── package.json ├── packages/ │ ├── cli/ │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── lib/ │ │ │ ├── cli.js │ │ │ ├── lint.js │ │ │ ├── log.js │ │ │ ├── options.js │ │ │ ├── print.js │ │ │ └── request.js │ │ └── package.json │ ├── core/ │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── index.js │ │ │ ├── rules/ │ │ │ │ ├── class-spacing.js │ │ │ │ ├── no-duplicate-class.js │ │ │ │ ├── no-ineffective-attrs.js │ │ │ │ ├── no-invalid-attr-value.js │ │ │ │ ├── no-obsolete-attrs.js │ │ │ │ ├── no-obsolete-tags.js │ │ │ │ └── use-baseline.js │ │ │ ├── types.js │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── baseline.js │ │ │ ├── node.js │ │ │ └── obsolete-attrs.js │ │ ├── package.json │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ ├── eslint-plugin/ │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── adapters/ │ │ │ │ ├── attribute-key.js │ │ │ │ ├── attribute-value.js │ │ │ │ ├── attribute.js │ │ │ │ ├── element.js │ │ │ │ └── factory.js │ │ │ ├── configs/ │ │ │ │ ├── all.js │ │ │ │ └── recommended.js │ │ │ ├── constants/ │ │ │ │ ├── index.js │ │ │ │ ├── obsolete-tags.js │ │ │ │ ├── rule-category.js │ │ │ │ ├── svg-camel-case-attributes.js │ │ │ │ └── void-elements.js │ │ │ ├── data/ │ │ │ │ └── entities.json │ │ │ ├── exports.ts │ │ │ ├── index.js │ │ │ ├── languages/ │ │ │ │ ├── html-language.js │ │ │ │ ├── html-source-code.js │ │ │ │ ├── html-traversal-step.js │ │ │ │ ├── types.js │ │ │ │ └── types.ts │ │ │ ├── rules/ │ │ │ │ ├── attrs-newline.js │ │ │ │ ├── class-spacing.js │ │ │ │ ├── css-no-empty-blocks.js │ │ │ │ ├── element-newline.js │ │ │ │ ├── head-order.js │ │ │ │ ├── id-naming-convention.js │ │ │ │ ├── indent/ │ │ │ │ │ ├── indent-level.js │ │ │ │ │ ├── indent.js │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ ├── lowercase.js │ │ │ │ ├── max-element-depth.js │ │ │ │ ├── no-abstract-roles.js │ │ │ │ ├── no-accesskey-attrs.js │ │ │ │ ├── no-aria-hidden-body.js │ │ │ │ ├── no-aria-hidden-on-focusable.js │ │ │ │ ├── no-duplicate-attrs.js │ │ │ │ ├── no-duplicate-class.js │ │ │ │ ├── no-duplicate-id.js │ │ │ │ ├── no-duplicate-in-head.js │ │ │ │ ├── no-empty-headings.js │ │ │ │ ├── no-extra-spacing-attrs.js │ │ │ │ ├── no-extra-spacing-tags.js │ │ │ │ ├── no-extra-spacing-text.js │ │ │ │ ├── no-heading-inside-button.js │ │ │ │ ├── no-ineffective-attrs.js │ │ │ │ ├── no-inline-styles.js │ │ │ │ ├── no-invalid-attr-value.js │ │ │ │ ├── no-invalid-entity.js │ │ │ │ ├── no-invalid-role.js │ │ │ │ ├── no-multiple-empty-lines.js │ │ │ │ ├── no-multiple-h1.js │ │ │ │ ├── no-nested-interactive.js │ │ │ │ ├── no-non-scalable-viewport.js │ │ │ │ ├── no-obsolete-attrs.js │ │ │ │ ├── no-obsolete-tags.js │ │ │ │ ├── no-positive-tabindex.js │ │ │ │ ├── no-redundant-role.js │ │ │ │ ├── no-restricted-attr-values.js │ │ │ │ ├── no-restricted-attrs.js │ │ │ │ ├── no-restricted-tags.js │ │ │ │ ├── no-script-style-type.js │ │ │ │ ├── no-skip-heading-levels.js │ │ │ │ ├── no-target-blank.js │ │ │ │ ├── no-trailing-spaces.js │ │ │ │ ├── no-whitespace-only-children.js │ │ │ │ ├── prefer-https.js │ │ │ │ ├── quotes.js │ │ │ │ ├── require-attrs.js │ │ │ │ ├── require-button-type.js │ │ │ │ ├── require-closing-tags.js │ │ │ │ ├── require-content.js │ │ │ │ ├── require-details-summary.js │ │ │ │ ├── require-doctype.js │ │ │ │ ├── require-explicit-size.js │ │ │ │ ├── require-form-method.js │ │ │ │ ├── require-frame-title.js │ │ │ │ ├── require-img-alt.js │ │ │ │ ├── require-input-label.js │ │ │ │ ├── require-lang.js │ │ │ │ ├── require-li-container.js │ │ │ │ ├── require-meta-charset.js │ │ │ │ ├── require-meta-description.js │ │ │ │ ├── require-meta-viewport.js │ │ │ │ ├── require-open-graph-protocol.js │ │ │ │ ├── require-title.js │ │ │ │ ├── sort-attrs.js │ │ │ │ ├── svg-require-viewbox.js │ │ │ │ ├── use-baseline.js │ │ │ │ └── utils/ │ │ │ │ ├── array.js │ │ │ │ ├── capo-adapter.js │ │ │ │ ├── capo.d.ts │ │ │ │ ├── naming.js │ │ │ │ ├── node.js │ │ │ │ ├── rule.js │ │ │ │ ├── settings.js │ │ │ │ ├── source-code.js │ │ │ │ ├── template-literal.js │ │ │ │ └── visitors.js │ │ │ └── types/ │ │ │ ├── ast.ts │ │ │ ├── index.ts │ │ │ ├── rule.ts │ │ │ └── settings.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ ├── configs.test.js │ │ │ ├── e2e/ │ │ │ │ ├── index.test.js │ │ │ │ └── robertakarobin/ │ │ │ │ ├── fixed.html │ │ │ │ ├── rules.js │ │ │ │ └── source.html │ │ │ ├── inline-disable.test.js │ │ │ ├── languages/ │ │ │ │ ├── html-language.test.js │ │ │ │ └── html-source-code.test.js │ │ │ ├── plugin/ │ │ │ │ └── export.test.js │ │ │ ├── rule-tester.js │ │ │ └── rules/ │ │ │ ├── attrs-newline.test.js │ │ │ ├── class-spacing.test.js │ │ │ ├── css-no-empty-blocks.test.js │ │ │ ├── element-newline.test.js │ │ │ ├── head-order.test.js │ │ │ ├── id-naming-convention.test.js │ │ │ ├── indent.test.js │ │ │ ├── lowercase.test.js │ │ │ ├── max-element-depth.test.js │ │ │ ├── no-abstract-roles.test.js │ │ │ ├── no-accesskey-attrs.test.js │ │ │ ├── no-aria-hidden-body.test.js │ │ │ ├── no-aria-hidden-on-focusable.test.js │ │ │ ├── no-duplicate-attrs.test.js │ │ │ ├── no-duplicate-class.test.js │ │ │ ├── no-duplicate-id.test.js │ │ │ ├── no-duplicate-in-head.test.js │ │ │ ├── no-empty-headings.test.js │ │ │ ├── no-extra-spacing-attrs.test.js │ │ │ ├── no-extra-spacing-tags.test.js │ │ │ ├── no-extra-spacing-text.test.js │ │ │ ├── no-heading-inside-button.test.js │ │ │ ├── no-ineffective-attrs.test.js │ │ │ ├── no-inline-styles.test.js │ │ │ ├── no-invalid-attr-value.test.js │ │ │ ├── no-invalid-entity.test.js │ │ │ ├── no-invalid-role.test.js │ │ │ ├── no-multiple-empty-lines.test.js │ │ │ ├── no-multiple-h1.test.js │ │ │ ├── no-nested-interactive.test.js │ │ │ ├── no-non-scalable-viewport.test.js │ │ │ ├── no-obsolete-attrs.test.js │ │ │ ├── no-obsolete-tags.test.js │ │ │ ├── no-positive-tabindex.test.js │ │ │ ├── no-redundant-role.test.js │ │ │ ├── no-restricted-attr-values.test.js │ │ │ ├── no-restricted-attrs.test.js │ │ │ ├── no-restricted-tags.test.js │ │ │ ├── no-script-style-type.test.js │ │ │ ├── no-skip-heading-levels.test.js │ │ │ ├── no-target-blank.test.js │ │ │ ├── no-trailing-spaces.test.js │ │ │ ├── no-whitespace-only-children.test.js │ │ │ ├── prefer-https.test.js │ │ │ ├── quotes.test.js │ │ │ ├── require-attrs.test.js │ │ │ ├── require-button-type.test.js │ │ │ ├── require-closing-tags.test.js │ │ │ ├── require-content.test.js │ │ │ ├── require-details-summary.test.js │ │ │ ├── require-doctype.test.js │ │ │ ├── require-explicit-size.test.js │ │ │ ├── require-form-method.test.js │ │ │ ├── require-frame-title.test.js │ │ │ ├── require-img-alt.test.js │ │ │ ├── require-input-label.test.js │ │ │ ├── require-lang.test.js │ │ │ ├── require-li-container.test.js │ │ │ ├── require-meta-charset.test.js │ │ │ ├── require-meta-description.test.js │ │ │ ├── require-meta-viewport.test.js │ │ │ ├── require-open-graph-protocol.test.js │ │ │ ├── require-title.test.js │ │ │ ├── sort-attrs.test.js │ │ │ ├── svg-require-viewbox.test.js │ │ │ ├── use-baseline.test.js │ │ │ └── utils/ │ │ │ └── template-literal.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── eslint-plugin-angular-template/ │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── adapters/ │ │ │ │ ├── attribute/ │ │ │ │ │ ├── angular-bound-attribute.js │ │ │ │ │ ├── angular-text-attribute.js │ │ │ │ │ └── factory.js │ │ │ │ ├── attribute-key/ │ │ │ │ │ ├── angular-bound-attribute.js │ │ │ │ │ ├── angular-text-attribute.js │ │ │ │ │ └── factory.js │ │ │ │ ├── attribute-value/ │ │ │ │ │ ├── angular-bound-attribute.js │ │ │ │ │ ├── angular-text-attribute.js │ │ │ │ │ └── factory.js │ │ │ │ └── element/ │ │ │ │ ├── angular-element.js │ │ │ │ └── factory.js │ │ │ ├── configs/ │ │ │ │ └── index.js │ │ │ ├── constants/ │ │ │ │ └── node-types.js │ │ │ ├── index.js │ │ │ ├── rules/ │ │ │ │ ├── class-spacing.js │ │ │ │ ├── index.js │ │ │ │ ├── no-duplicate-class.js │ │ │ │ ├── no-ineffective-attrs.js │ │ │ │ ├── no-invalid-attr-value.js │ │ │ │ ├── no-obsolete-attrs.js │ │ │ │ ├── no-obsolete-tags.js │ │ │ │ └── use-baseline.js │ │ │ └── types.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ ├── rule-tester.js │ │ │ └── rules/ │ │ │ ├── class-spacing.test.js │ │ │ ├── no-duplicate-class.test.js │ │ │ ├── no-ineffective-attrs.test.js │ │ │ ├── no-invalid-attr-value.test.js │ │ │ ├── no-obsolete-attrs.test.js │ │ │ ├── no-obsolete-tags.test.js │ │ │ └── use-baseline.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── eslint-plugin-react/ │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── adapters/ │ │ │ │ ├── attribute/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── jsx-attribute.js │ │ │ │ │ └── jsx-spread-attribute.js │ │ │ │ ├── attribute-key/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── jsx-identifier.js │ │ │ │ │ └── jsx-namespace-name.js │ │ │ │ ├── attribute-value/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── jsx-expression.js │ │ │ │ │ ├── literal.js │ │ │ │ │ └── template-literal.js │ │ │ │ └── element/ │ │ │ │ ├── factory.js │ │ │ │ └── jsx-element.js │ │ │ ├── configs/ │ │ │ │ └── index.js │ │ │ ├── constants/ │ │ │ │ └── node-types.js │ │ │ ├── index.js │ │ │ ├── rules/ │ │ │ │ ├── classname-spacing.js │ │ │ │ ├── index.js │ │ │ │ ├── no-duplicate-classname.js │ │ │ │ ├── no-ineffective-attrs.js │ │ │ │ ├── no-invalid-attr-value.js │ │ │ │ ├── no-obsolete-attrs.js │ │ │ │ ├── no-obsolete-tags.js │ │ │ │ ├── use-baseline.js │ │ │ │ └── utils/ │ │ │ │ └── node.js │ │ │ ├── types.js │ │ │ └── types.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ ├── rule-tester.js │ │ │ └── rules/ │ │ │ ├── classname-spacing.test.js │ │ │ ├── no-duplicate-classname.test.js │ │ │ ├── no-ineffective-attrs.test.js │ │ │ ├── no-invalid-attr-value.test.js │ │ │ ├── no-obsolete-attrs.test.js │ │ │ ├── no-obsolete-tags.test.js │ │ │ └── use-baseline.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── eslint-plugin-svelte/ │ │ ├── README.md │ │ ├── jest.config.mjs │ │ ├── lib/ │ │ │ ├── adapters/ │ │ │ │ ├── attribute/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── null.js │ │ │ │ │ ├── svelte-attribute.js │ │ │ │ │ └── svelte-shorthand-attribute.js │ │ │ │ ├── attribute-key/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── identifier.js │ │ │ │ │ ├── svelte-directive-key.js │ │ │ │ │ └── svelte-name.js │ │ │ │ ├── attribute-value/ │ │ │ │ │ ├── factory.js │ │ │ │ │ ├── literal.js │ │ │ │ │ ├── svelte-literal.js │ │ │ │ │ ├── svelte-mustache-tag-text.js │ │ │ │ │ └── template-literal.js │ │ │ │ └── element/ │ │ │ │ ├── factory.js │ │ │ │ └── svelte-element.js │ │ │ ├── configs/ │ │ │ │ └── index.js │ │ │ ├── constants/ │ │ │ │ ├── index.js │ │ │ │ └── node-types.js │ │ │ ├── index.js │ │ │ ├── rules/ │ │ │ │ ├── class-spacing.js │ │ │ │ ├── index.js │ │ │ │ ├── no-duplicate-class.js │ │ │ │ ├── no-ineffective-attrs.js │ │ │ │ ├── no-invalid-attr-value.js │ │ │ │ ├── no-obsolete-attrs.js │ │ │ │ ├── no-obsolete-tags.js │ │ │ │ ├── use-baseline.js │ │ │ │ └── utils/ │ │ │ │ └── node.js │ │ │ ├── types.js │ │ │ └── types.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ ├── rule-tester.js │ │ │ └── rules/ │ │ │ ├── class-spacing.test.js │ │ │ ├── no-duplicate-class.test.js │ │ │ ├── no-ineffective-attrs.test.js │ │ │ ├── no-invalid-attr-value.test.js │ │ │ ├── no-obsolete-attrs.test.js │ │ │ ├── no-obsolete-tags.test.js │ │ │ └── use-baseline.test.js │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ ├── integration-test/ │ │ ├── README.md │ │ ├── fixtures/ │ │ │ ├── angular-template/ │ │ │ │ ├── eslint.config.js │ │ │ │ └── templates/ │ │ │ │ ├── invalid.html │ │ │ │ └── valid.html │ │ │ ├── eslint-v10-flat-config/ │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── eslint.config.js │ │ │ │ ├── frontmatter/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ ├── html/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ └── js/ │ │ │ │ ├── invalid.js │ │ │ │ └── valid.js │ │ │ ├── eslint-v8-legacy-config/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── frontmatter/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ ├── html/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ └── js/ │ │ │ │ ├── invalid.js │ │ │ │ └── valid.js │ │ │ ├── eslint-v9-flat-config/ │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── eslint.config.js │ │ │ │ ├── frontmatter/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ ├── html/ │ │ │ │ │ ├── invalid.html │ │ │ │ │ └── valid.html │ │ │ │ └── js/ │ │ │ │ ├── invalid.js │ │ │ │ └── valid.js │ │ │ ├── eslint-v9-language/ │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── eslint.config.js │ │ │ │ ├── frontmatter/ │ │ │ │ │ └── valid.html │ │ │ │ └── html/ │ │ │ │ ├── invalid.html │ │ │ │ └── valid.html │ │ │ ├── react/ │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── eslint.config.js │ │ │ │ └── jsx/ │ │ │ │ ├── invalid.jsx │ │ │ │ └── valid.jsx │ │ │ ├── svelte/ │ │ │ │ ├── .yarnrc.yml │ │ │ │ ├── eslint.config.js │ │ │ │ └── svelte/ │ │ │ │ ├── invalid.svelte │ │ │ │ └── valid.svelte │ │ │ └── typescript/ │ │ │ ├── eslint.config.ts │ │ │ └── tsconfig.json │ │ ├── lib/ │ │ │ └── test-utils.js │ │ ├── package.json │ │ └── tests/ │ │ └── integration.test.js │ ├── parser/ │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── css-visitor-keys.js │ │ │ ├── exports.ts │ │ │ ├── frontmatter.js │ │ │ ├── index.js │ │ │ ├── meta.js │ │ │ ├── node-types.js │ │ │ ├── options.js │ │ │ ├── parser.js │ │ │ ├── template-engine-syntax-preset.js │ │ │ ├── traverse.js │ │ │ ├── types.ts │ │ │ └── visitor-keys.js │ │ ├── package.json │ │ ├── tests/ │ │ │ └── frontmatter.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── template-parser/ │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── lib/ │ │ │ ├── exports.ts │ │ │ ├── index.js │ │ │ ├── template-parser.js │ │ │ ├── traverser.js │ │ │ └── types.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ └── template-parser.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── template-syntax-parser/ │ │ ├── README.md │ │ ├── eslint.config.js │ │ ├── lib/ │ │ │ ├── exports.ts │ │ │ ├── index.js │ │ │ ├── parser.js │ │ │ ├── template-syntax-parser.js │ │ │ └── types.ts │ │ ├── package.json │ │ ├── tests/ │ │ │ └── template-syntax-parser.test.js │ │ ├── tsconfig.build.json │ │ └── tsconfig.json │ ├── types/ │ │ ├── lib/ │ │ │ ├── ast.d.ts │ │ │ ├── css-ast.d.ts │ │ │ ├── html-ast.d.ts │ │ │ ├── index.d.ts │ │ │ ├── js-ast.d.ts │ │ │ ├── node.ts │ │ │ ├── position.ts │ │ │ ├── range.ts │ │ │ └── source-location.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── web-linter/ │ │ ├── .eslintrc.js │ │ ├── index.js │ │ ├── package.json │ │ ├── postprocess.js │ │ └── rollup.config.js │ └── website/ │ ├── .firebaserc │ ├── .gitignore │ ├── .postcssrc │ ├── .posthtmlrc.js │ ├── README.md │ ├── eslint.config.js │ ├── firebase.json │ ├── package.json │ ├── scripts/ │ │ ├── docs.js │ │ ├── generates/ │ │ │ ├── convert-to-html.js │ │ │ ├── html-factory.js │ │ │ ├── htmls.js │ │ │ ├── markdowns.js │ │ │ ├── marked.js │ │ │ ├── renderer.js │ │ │ ├── robots.js │ │ │ └── sitemap.js │ │ ├── llms.txt.js │ │ ├── llms.txt.md │ │ ├── robots.js │ │ └── sitemap.js │ ├── src/ │ │ ├── common.css │ │ ├── components/ │ │ │ ├── footer.html │ │ │ ├── header/ │ │ │ │ ├── header.html │ │ │ │ └── nav.html │ │ │ ├── home.html │ │ │ ├── layout.html │ │ │ ├── nav-angular.html │ │ │ ├── nav-list.html │ │ │ ├── nav-react.html │ │ │ ├── nav-svelte.html │ │ │ ├── nav.html │ │ │ ├── playground.html │ │ │ ├── template-angular.html │ │ │ ├── template-react.html │ │ │ ├── template-svelte.html │ │ │ └── template.html │ │ ├── docs/ │ │ │ └── .gitkeep │ │ ├── highlight.scss │ │ ├── index.html │ │ ├── playground.html │ │ ├── privacy-policy.html │ │ └── scripts/ │ │ ├── layout.js │ │ └── playground/ │ │ ├── app.js │ │ ├── helpers.js │ │ ├── languages/ │ │ │ ├── html.js │ │ │ ├── index.js │ │ │ ├── javascript.js │ │ │ ├── jsx.js │ │ │ └── types.ts │ │ ├── linter.js │ │ ├── model.js │ │ └── view.js │ └── tailwind.config.js ├── prettier.config.mjs ├── tools/ │ ├── baseline/ │ │ └── generate-baseline.mjs │ └── rule/ │ ├── new-rule.js │ └── templates/ │ ├── html/ │ │ ├── rule.js │ │ ├── rule.md │ │ └── rule.test.js │ ├── react/ │ │ ├── rule.js │ │ ├── rule.md │ │ └── rule.test.js │ └── svelte/ │ ├── rule.js │ ├── rule.md │ └── rule.test.js ├── tsconfig.base.json └── turbo.json