Skip to content

Commit a9e5428

Browse files
authored
Rename package to eslint-plugin-svelte (#160)
* Rename package to eslint-plugin-svelte * fix script * fix wf * Use yarn * format * fix wf * add mig guide * Update FUNDING.yml * update
1 parent 4bfcd8e commit a9e5428

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+476
-463
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
// "forwardPorts": [],
2323

2424
// Use 'postCreateCommand' to run commands after the container is created.
25-
"postCreateCommand": "npm install --legacy-peer-deps",
25+
"postCreateCommand": "yarn install",
2626

2727
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
2828
"remoteUser": "node"

.github/FUNDING.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
# These are supported funding model platforms
22

3-
github: ota-meshi
4-
# patreon: # Replace with a single Patreon username
5-
# open_collective: # Replace with a single Open Collective username
6-
# ko_fi: # Replace with a single Ko-fi username
7-
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8-
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9-
# liberapay: # Replace with a single Liberapay username
10-
# issuehunt: # Replace with a single IssueHunt username
11-
# otechie: # Replace with a single Otechie username
12-
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
3+
github: [ota-meshi, JounQin]
4+
open_collective: rxts
5+
patreon: 1stG

.github/workflows/GHPages.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ jobs:
1313
- uses: actions/setup-node@v3
1414
- name: Install And Build
1515
run: |+
16-
npm install --legacy-peer-deps
17-
npm run build
16+
yarn install
17+
yarn build
1818
export NODE_OPTIONS="--max-old-space-size=8192"
19-
npm run docs:build
19+
yarn docs:build
2020
- name: Deploy
2121
uses: peaceiris/actions-gh-pages@v3
2222
with:

.github/workflows/NodeCI.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,22 @@ jobs:
1313
- uses: actions/checkout@v3
1414
- uses: actions/setup-node@v3
1515
- name: Install Packages
16-
run: npm install --legacy-peer-deps
16+
run: yarn install
1717
- name: Lint
18-
run: npm run lint
18+
run: |+
19+
yarn build
20+
yarn lint
1921
build:
2022
runs-on: ubuntu-latest
2123
steps:
2224
- uses: actions/checkout@v3
2325
- uses: actions/setup-node@v3
2426
- name: Install Packages
25-
run: npm install --legacy-peer-deps
27+
run: yarn install
2628
- name: Build
2729
run: |+
28-
npm run update
29-
npm run build
30+
yarn update
31+
yarn build
3032
test:
3133
name: "Test for ESLint ${{ matrix.eslint }} on ${{ matrix.node }} OS: ${{matrix.os}}"
3234
runs-on: ${{ matrix.os }}
@@ -44,10 +46,10 @@ jobs:
4446
node-version: ${{ matrix.node }}
4547
- name: Install ESLint ${{ matrix.eslint }}
4648
run: |+
47-
npm i -D eslint@${{ matrix.eslint }} --legacy-peer-deps
48-
npx rimraf node_modules
49+
yarn add -D eslint@${{ matrix.eslint }} --ignore-engines
50+
rm -rf node_modules
4951
if: matrix.eslint != 8
5052
- name: Install Packages
51-
run: npm install --legacy-peer-deps
53+
run: yarn install --ignore-engines
5254
- name: Test
53-
run: npm test
55+
run: yarn test

.github/workflows/NpmPublish.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ dist
101101
.tern-port
102102

103103
## repo
104+
/yarn.lock
104105
/lib
105106
/.svelte-kit
106107
/build

README.md

Lines changed: 54 additions & 50 deletions
Large diffs are not rendered by default.

docs-svelte-kit/.eslintrc.cjs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// eslint-disable-next-line no-undef -- ignore
22
module.exports = {
3-
extends: ["plugin:@ota-meshi/svelte/recommended"],
3+
extends: ["plugin:svelte/recommended"],
44
env: {
55
browser: true,
66
es2022: true,
@@ -9,11 +9,11 @@ module.exports = {
99
sourceType: "module",
1010
},
1111
rules: {
12-
"@ota-meshi/svelte/no-target-blank": "error",
13-
"@ota-meshi/svelte/button-has-type": "error",
14-
"@ota-meshi/svelte/no-useless-mustaches": "error",
15-
"@ota-meshi/svelte/prefer-class-directive": "error",
16-
"@ota-meshi/svelte/prefer-style-directive": "error",
17-
"@ota-meshi/svelte/spaced-html-comment": "error",
12+
"svelte/no-target-blank": "error",
13+
"svelte/button-has-type": "error",
14+
"svelte/no-useless-mustaches": "error",
15+
"svelte/prefer-class-directive": "error",
16+
"svelte/prefer-style-directive": "error",
17+
"svelte/spaced-html-comment": "error",
1818
},
1919
}

docs-svelte-kit/src/app.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
property="og:image"
1616
content="https://ota-meshi.github.io/eslint-plugin-svelte/favicon.png"
1717
/>
18-
<meta property="og:site_name" content="@ota-meshi/eslint-plugin-svelte" />
18+
<meta property="og:site_name" content="eslint-plugin-svelte" />
1919
<meta
2020
property="og:description"
2121
content="ESLint plugin for Svelte using AST"

docs-svelte-kit/src/lib/components/ESLintPlayground.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
})
2323
2424
const DEFAULT_CODE =
25-
`<!-- Welcome to @ota-meshi/eslint-plugin-svelte -->
25+
`<!-- Welcome to eslint-plugin-svelte -->
2626
<script>
2727
let a = 1;
2828
let b = 2;

docs-svelte-kit/src/lib/header/Header.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
</ul>
5353
<div class="nav-title">
5454
<a sveltekit:prefetch href="{baseUrl}/">
55-
<img src={logo} alt="Logo" />@ota-meshi/eslint-plugin-svelte</a
55+
<img src={logo} alt="Logo" />eslint-plugin-svelte</a
5656
>
5757
</div>
5858
<svg viewBox="0 0 2 3" aria-hidden="true">

docs-svelte-kit/src/lib/utils.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,14 @@ const SIDE_MENU = {
5252
children: categoryRules,
5353
},
5454
{ path: "/playground/", title: "Playground" },
55+
{ path: "/migration/", title: "Migration" },
5556
],
5657
"/": [
5758
{ path: "/", title: "Introduction" },
5859
{ path: "/user-guide/", title: "User Guide" },
5960
{ path: "/rules/", title: "Available Rules" },
6061
{ path: "/playground/", title: "Playground" },
62+
{ path: "/migration/", title: "Migration" },
6163
],
6264
}
6365

docs/.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict"
22

33
module.exports = {
4-
extends: ["plugin:@ota-meshi/svelte/recommended"],
4+
extends: ["plugin:svelte/recommended"],
55
rules: {
66
"eslint-comments/require-description": "off",
77
"prettier/prettier": "off",

docs/README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
---
2-
title: "@ota-meshi/eslint-plugin-svelte"
2+
title: "eslint-plugin-svelte"
33
---
44

55
# Introduction
66

7-
`@ota-meshi/eslint-plugin-svelte` is [ESLint] plugin for [Svelte].
7+
`eslint-plugin-svelte` is [ESLint] plugin for [Svelte].
88
It provides many unique check rules by using the template AST.
99
You can check on the [Online DEMO](./playground.md).
1010

11-
[![NPM license](https://img.shields.io/npm/l/@ota-meshi/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/@ota-meshi/eslint-plugin-svelte)
12-
[![NPM version](https://img.shields.io/npm/v/@ota-meshi/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/@ota-meshi/eslint-plugin-svelte)
13-
[![NPM downloads](https://img.shields.io/badge/dynamic/json.svg?label=downloads&colorB=green&suffix=/day&query=$.downloads&uri=https://api.npmjs.org//downloads/point/last-day/@ota-meshi/eslint-plugin-svelte&maxAge=3600)](http://www.npmtrends.com/@ota-meshi/eslint-plugin-svelte)
14-
[![NPM downloads](https://img.shields.io/npm/dw/@ota-meshi/eslint-plugin-svelte.svg)](http://www.npmtrends.com/@ota-meshi/eslint-plugin-svelte)
15-
[![NPM downloads](https://img.shields.io/npm/dm/@ota-meshi/eslint-plugin-svelte.svg)](http://www.npmtrends.com/@ota-meshi/eslint-plugin-svelte)
16-
[![NPM downloads](https://img.shields.io/npm/dy/@ota-meshi/eslint-plugin-svelte.svg)](http://www.npmtrends.com/@ota-meshi/eslint-plugin-svelte)
17-
[![NPM downloads](https://img.shields.io/npm/dt/@ota-meshi/eslint-plugin-svelte.svg)](http://www.npmtrends.com/@ota-meshi/eslint-plugin-svelte)
11+
[![NPM license](https://img.shields.io/npm/l/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/eslint-plugin-svelte)
12+
[![NPM version](https://img.shields.io/npm/v/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/eslint-plugin-svelte)
13+
[![NPM downloads](https://img.shields.io/badge/dynamic/json.svg?label=downloads&colorB=green&suffix=/day&query=$.downloads&uri=https://api.npmjs.org//downloads/point/last-day/eslint-plugin-svelte&maxAge=3600)](http://www.npmtrends.com/eslint-plugin-svelte)
14+
[![NPM downloads](https://img.shields.io/npm/dw/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
15+
[![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
16+
[![NPM downloads](https://img.shields.io/npm/dy/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
17+
[![NPM downloads](https://img.shields.io/npm/dt/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
1818
[![Build Status](https://github.com/ota-meshi/eslint-plugin-svelte/workflows/CI/badge.svg?branch=main)](https://github.com/ota-meshi/eslint-plugin-svelte/actions?query=workflow%3ACI)
1919

2020
## :name_badge: What is this plugin?
@@ -30,7 +30,7 @@ The [svelte-eslint-parser] aims to make it easy to create your own rules for the
3030

3131
### ❗ Attention
3232

33-
The [svelte-eslint-parser] and the `@ota-meshi/eslint-plugin-svelte` can not be used with the [eslint-plugin-svelte3].
33+
The [svelte-eslint-parser] and the `eslint-plugin-svelte` can not be used with the [eslint-plugin-svelte3].
3434

3535
[svelte-eslint-parser]: https://github.com/ota-meshi/svelte-eslint-parser
3636
[eslint-plugin-svelte3]: https://github.com/sveltejs/eslint-plugin-svelte3

docs/migration.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Migration Guide
2+
3+
## From `eslint-plugin-svelte` v1 To v2
4+
5+
`eslint-plugin-svelte` v1 was an alias for [eslint-plugin-svelte3], but `eslint-plugin-svelte` v2 is now an independent eslint-plugin.
6+
7+
If you want the previous behavior, replace it with [eslint-plugin-svelte3].
8+
9+
[eslint-plugin-svelte3]: https://github.com/sveltejs/eslint-plugin-svelte3
10+
11+
## From `@ota-meshi/eslint-plugin-svelte`
12+
13+
`@ota-meshi/eslint-plugin-svelte` has been renamed to `eslint-plugin-svelte`.
14+
Therefore, you need to replace the package name, and the presets, rules, and settings specified in the configuration.
15+
16+
- `package.json`
17+
Replace the package name.
18+
19+
```diff
20+
- "@ota-meshi/eslint-plugin-svelte": "^0.X.X"
21+
+ "eslint-plugin-svelte": "^X.X.X"
22+
```
23+
24+
- `.eslintrc.*`
25+
Replace `@ota-meshi/svelte` with `svelte` as a string.
26+
Examples:
27+
28+
- Presets
29+
30+
```diff
31+
"extends": [
32+
- "plugin:@ota-meshi/svelte/recommended"
33+
+ "plugin:svelte/recommended"
34+
],
35+
```
36+
37+
- Rules
38+
39+
```diff
40+
"rules": {
41+
- "@ota-meshi/svelte/no-dupe-else-if-blocks": "error",
42+
+ "svelte/no-dupe-else-if-blocks": "error",
43+
- "@ota-meshi/svelte/button-has-type": "error",
44+
+ "svelte/button-has-type": "error",
45+
},
46+
```
47+
48+
- `settings`
49+
50+
```diff
51+
"settings": {
52+
- "@ota-meshi/svelte": { ... }
53+
+ "svelte": { ... }
54+
},
55+
```

docs/rules.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ sidebarDepth: 0
55
# Available Rules
66

77
The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) automatically fixes problems reported by rules which have a wrench :wrench: below.
8-
The rules with the following star :star: are included in the `plugin:@ota-meshi/svelte/recommended` config.
8+
The rules with the following star :star: are included in the `plugin:svelte/recommended` config.
99

1010
<!-- This file is automatically generated in tools/update-docs-rules-index.js, do not change! -->
1111

@@ -15,66 +15,66 @@ These rules relate to possible syntax or logic errors in Svelte code:
1515

1616
| Rule ID | Description | |
1717
|:--------|:------------|:---|
18-
| [@ota-meshi/svelte/no-dupe-else-if-blocks](./rules/no-dupe-else-if-blocks.md) | disallow duplicate conditions in `{#if}` / `{:else if}` chains | :star: |
19-
| [@ota-meshi/svelte/no-dupe-style-properties](./rules/no-dupe-style-properties.md) | disallow duplicate style properties | :star: |
20-
| [@ota-meshi/svelte/no-dynamic-slot-name](./rules/no-dynamic-slot-name.md) | disallow dynamic slot name | :star::wrench: |
21-
| [@ota-meshi/svelte/no-not-function-handler](./rules/no-not-function-handler.md) | disallow use of not function in event handler | :star: |
22-
| [@ota-meshi/svelte/no-object-in-text-mustaches](./rules/no-object-in-text-mustaches.md) | disallow objects in text mustache interpolation | :star: |
23-
| [@ota-meshi/svelte/no-shorthand-style-property-overrides](./rules/no-shorthand-style-property-overrides.md) | disallow shorthand style properties that override related longhand properties | :star: |
24-
| [@ota-meshi/svelte/no-unknown-style-directive-property](./rules/no-unknown-style-directive-property.md) | disallow unknown `style:property` | :star: |
25-
| [@ota-meshi/svelte/valid-compile](./rules/valid-compile.md) | disallow warnings when compiling. | :star: |
18+
| [svelte/no-dupe-else-if-blocks](./rules/no-dupe-else-if-blocks.md) | disallow duplicate conditions in `{#if}` / `{:else if}` chains | :star: |
19+
| [svelte/no-dupe-style-properties](./rules/no-dupe-style-properties.md) | disallow duplicate style properties | :star: |
20+
| [svelte/no-dynamic-slot-name](./rules/no-dynamic-slot-name.md) | disallow dynamic slot name | :star::wrench: |
21+
| [svelte/no-not-function-handler](./rules/no-not-function-handler.md) | disallow use of not function in event handler | :star: |
22+
| [svelte/no-object-in-text-mustaches](./rules/no-object-in-text-mustaches.md) | disallow objects in text mustache interpolation | :star: |
23+
| [svelte/no-shorthand-style-property-overrides](./rules/no-shorthand-style-property-overrides.md) | disallow shorthand style properties that override related longhand properties | :star: |
24+
| [svelte/no-unknown-style-directive-property](./rules/no-unknown-style-directive-property.md) | disallow unknown `style:property` | :star: |
25+
| [svelte/valid-compile](./rules/valid-compile.md) | disallow warnings when compiling. | :star: |
2626

2727
## Security Vulnerability
2828

2929
These rules relate to security vulnerabilities in Svelte code:
3030

3131
| Rule ID | Description | |
3232
|:--------|:------------|:---|
33-
| [@ota-meshi/svelte/no-at-html-tags](./rules/no-at-html-tags.md) | disallow use of `{@html}` to prevent XSS attack | :star: |
34-
| [@ota-meshi/svelte/no-target-blank](./rules/no-target-blank.md) | disallow `target="_blank"` attribute without `rel="noopener noreferrer"` | |
33+
| [svelte/no-at-html-tags](./rules/no-at-html-tags.md) | disallow use of `{@html}` to prevent XSS attack | :star: |
34+
| [svelte/no-target-blank](./rules/no-target-blank.md) | disallow `target="_blank"` attribute without `rel="noopener noreferrer"` | |
3535

3636
## Best Practices
3737

3838
These rules relate to better ways of doing things to help you avoid problems:
3939

4040
| Rule ID | Description | |
4141
|:--------|:------------|:---|
42-
| [@ota-meshi/svelte/button-has-type](./rules/button-has-type.md) | disallow usage of button without an explicit type attribute | |
43-
| [@ota-meshi/svelte/no-at-debug-tags](./rules/no-at-debug-tags.md) | disallow the use of `{@debug}` | :star: |
44-
| [@ota-meshi/svelte/no-unused-svelte-ignore](./rules/no-unused-svelte-ignore.md) | disallow unused svelte-ignore comments | :star: |
45-
| [@ota-meshi/svelte/no-useless-mustaches](./rules/no-useless-mustaches.md) | disallow unnecessary mustache interpolations | :wrench: |
46-
| [@ota-meshi/svelte/require-optimized-style-attribute](./rules/require-optimized-style-attribute.md) | require style attributes that can be optimized | |
42+
| [svelte/button-has-type](./rules/button-has-type.md) | disallow usage of button without an explicit type attribute | |
43+
| [svelte/no-at-debug-tags](./rules/no-at-debug-tags.md) | disallow the use of `{@debug}` | :star: |
44+
| [svelte/no-unused-svelte-ignore](./rules/no-unused-svelte-ignore.md) | disallow unused svelte-ignore comments | :star: |
45+
| [svelte/no-useless-mustaches](./rules/no-useless-mustaches.md) | disallow unnecessary mustache interpolations | :wrench: |
46+
| [svelte/require-optimized-style-attribute](./rules/require-optimized-style-attribute.md) | require style attributes that can be optimized | |
4747

4848
## Stylistic Issues
4949

5050
These rules relate to style guidelines, and are therefore quite subjective:
5151

5252
| Rule ID | Description | |
5353
|:--------|:------------|:---|
54-
| [@ota-meshi/svelte/first-attribute-linebreak](./rules/first-attribute-linebreak.md) | enforce the location of first attribute | :wrench: |
55-
| [@ota-meshi/svelte/html-quotes](./rules/html-quotes.md) | enforce quotes style of HTML attributes | :wrench: |
56-
| [@ota-meshi/svelte/indent](./rules/indent.md) | enforce consistent indentation | :wrench: |
57-
| [@ota-meshi/svelte/max-attributes-per-line](./rules/max-attributes-per-line.md) | enforce the maximum number of attributes per line | :wrench: |
58-
| [@ota-meshi/svelte/mustache-spacing](./rules/mustache-spacing.md) | enforce unified spacing in mustache | :wrench: |
59-
| [@ota-meshi/svelte/prefer-class-directive](./rules/prefer-class-directive.md) | require class directives instead of ternary expressions | :wrench: |
60-
| [@ota-meshi/svelte/prefer-style-directive](./rules/prefer-style-directive.md) | require style directives instead of style attribute | :wrench: |
61-
| [@ota-meshi/svelte/shorthand-attribute](./rules/shorthand-attribute.md) | enforce use of shorthand syntax in attribute | :wrench: |
62-
| [@ota-meshi/svelte/shorthand-directive](./rules/shorthand-directive.md) | enforce use of shorthand syntax in directives | :wrench: |
63-
| [@ota-meshi/svelte/spaced-html-comment](./rules/spaced-html-comment.md) | enforce consistent spacing after the `<!--` and before the `-->` in a HTML comment | :wrench: |
54+
| [svelte/first-attribute-linebreak](./rules/first-attribute-linebreak.md) | enforce the location of first attribute | :wrench: |
55+
| [svelte/html-quotes](./rules/html-quotes.md) | enforce quotes style of HTML attributes | :wrench: |
56+
| [svelte/indent](./rules/indent.md) | enforce consistent indentation | :wrench: |
57+
| [svelte/max-attributes-per-line](./rules/max-attributes-per-line.md) | enforce the maximum number of attributes per line | :wrench: |
58+
| [svelte/mustache-spacing](./rules/mustache-spacing.md) | enforce unified spacing in mustache | :wrench: |
59+
| [svelte/prefer-class-directive](./rules/prefer-class-directive.md) | require class directives instead of ternary expressions | :wrench: |
60+
| [svelte/prefer-style-directive](./rules/prefer-style-directive.md) | require style directives instead of style attribute | :wrench: |
61+
| [svelte/shorthand-attribute](./rules/shorthand-attribute.md) | enforce use of shorthand syntax in attribute | :wrench: |
62+
| [svelte/shorthand-directive](./rules/shorthand-directive.md) | enforce use of shorthand syntax in directives | :wrench: |
63+
| [svelte/spaced-html-comment](./rules/spaced-html-comment.md) | enforce consistent spacing after the `<!--` and before the `-->` in a HTML comment | :wrench: |
6464

6565
## Extension Rules
6666

6767
These rules extend the rules provided by ESLint itself to work well in Svelte:
6868

6969
| Rule ID | Description | |
7070
|:--------|:------------|:---|
71-
| [@ota-meshi/svelte/no-inner-declarations](./rules/no-inner-declarations.md) | disallow variable or `function` declarations in nested blocks | :star: |
71+
| [svelte/no-inner-declarations](./rules/no-inner-declarations.md) | disallow variable or `function` declarations in nested blocks | :star: |
7272

7373
## System
7474

7575
These rules relate to this plugin works:
7676

7777
| Rule ID | Description | |
7878
|:--------|:------------|:---|
79-
| [@ota-meshi/svelte/comment-directive](./rules/comment-directive.md) | support comment-directives in HTML template | :star: |
80-
| [@ota-meshi/svelte/system](./rules/system.md) | system rule for working this plugin | :star: |
79+
| [svelte/comment-directive](./rules/comment-directive.md) | support comment-directives in HTML template | :star: |
80+
| [svelte/system](./rules/system.md) | system rule for working this plugin | :star: |

0 commit comments

Comments
 (0)