@d-zero/markuplint-config 5.0.0-alpha.50 → 5.0.0-alpha.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +24 -0
  2. package/index.js +46 -31
  3. package/name.js +38 -1
  4. package/package.json +4 -4
package/README.md CHANGED
@@ -31,3 +31,27 @@ npm install -D @d-zero/markuplint-config
31
31
  }
32
32
  }
33
33
  ```
34
+
35
+ `class-naming`の設定を変更する場合、上書きがやや冗長になるので、専用の関数を使って許可するクラスを追加します。
36
+
37
+ ```js
38
+ import { extendsConfig } from '@d-zero/markuplint-config';
39
+
40
+ export default extendsConfig({
41
+ // 通常のクラス命名規則に加えて、Splideのクラス名も許可する
42
+ classNaming: ['/^splide(?:__[a-z]+)?$/'],
43
+ });
44
+
45
+ // または、以下のように書くこともできます
46
+
47
+ export default {
48
+ ...extendsConfig({
49
+ // 通常のクラス命名規則に加えて、Splideのクラス名も許可する
50
+ classNaming: ['/^splide(?:__[a-z]+)?$/'],
51
+ }),
52
+ // 他の設定
53
+ rules: {
54
+ 'character-reference': false,
55
+ },
56
+ };
57
+ ```
package/index.js CHANGED
@@ -1,38 +1,53 @@
1
1
  import base from './base.js';
2
- import name from './name.js';
2
+ import nameConfig, { nameWith } from './name.js';
3
3
  import pug from './pug.js';
4
4
 
5
+ const createConfig = (name = nameConfig) => {
6
+ return {
7
+ ...base,
8
+ ...pug,
9
+ ...name,
10
+ parser: {
11
+ ...base.parser,
12
+ ...pug.parser,
13
+ ...name.parser,
14
+ },
15
+ rules: {
16
+ ...base.rules,
17
+ ...pug.rules,
18
+ ...name.rules,
19
+ },
20
+ nodeRules: [
21
+ //
22
+ ...(base.nodeRules ?? []),
23
+ ...(pug.nodeRules ?? []),
24
+ ...(name.nodeRules ?? []),
25
+ ],
26
+ childNodeRules: [
27
+ //
28
+ ...(base.childNodeRules ?? []),
29
+ ...(pug.childNodeRules ?? []),
30
+ ...(name.childNodeRules ?? []),
31
+ ],
32
+ overrideMode: 'merge',
33
+ overrides: {
34
+ ...pug.overrides,
35
+ },
36
+ };
37
+ };
38
+
5
39
  /**
6
40
  * @type {import('@markuplint/ml-config').Config}
7
41
  */
8
- export default {
9
- ...base,
10
- ...pug,
11
- ...name,
12
- parser: {
13
- ...base.parser,
14
- ...pug.parser,
15
- ...name.parser,
16
- },
17
- rules: {
18
- ...base.rules,
19
- ...pug.rules,
20
- ...name.rules,
21
- },
22
- nodeRules: [
23
- //
24
- ...(base.nodeRules ?? []),
25
- ...(pug.nodeRules ?? []),
26
- ...(name.nodeRules ?? []),
27
- ],
28
- childNodeRules: [
29
- //
30
- ...(base.childNodeRules ?? []),
31
- ...(pug.childNodeRules ?? []),
32
- ...(name.childNodeRules ?? []),
33
- ],
34
- overrideMode: 'merge',
35
- overrides: {
36
- ...pug.overrides,
37
- },
42
+ export default createConfig();
43
+
44
+ /**
45
+ *
46
+ * @param {Object} options
47
+ * @param {string[]?} options.classNaming
48
+ * @returns
49
+ */
50
+ export const extendsConfig = (options) => {
51
+ const name = options?.classNaming ? nameWith(options.classNaming) : nameConfig;
52
+ return createConfig(name);
38
53
  };
package/name.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @type {import('@markuplint/ml-config').Config}
3
3
  */
4
- export default {
4
+ const nameBase = {
5
5
  rules: {
6
6
  'class-naming': {
7
7
  severity: 'error',
@@ -44,3 +44,40 @@ export default {
44
44
  },
45
45
  ],
46
46
  };
47
+
48
+ /**
49
+ * @type {import('@markuplint/ml-config').Config}
50
+ */
51
+ export default nameBase;
52
+
53
+ /**
54
+ * @type {(addNamingRule: string[]) => import('@markuplint/ml-config').Config}
55
+ */
56
+ export const nameWith = (addNamingRules) => {
57
+ return {
58
+ ...nameBase,
59
+ rules: {
60
+ ...nameBase.rules,
61
+ 'class-naming': {
62
+ ...nameBase.rules['class-naming'],
63
+ value: [nameBase.rules['class-naming'].value, ...addNamingRules],
64
+ },
65
+ },
66
+ childNodeRules: [
67
+ {
68
+ ...nameBase.childNodeRules[0],
69
+ rules: {
70
+ ...nameBase.childNodeRules[0].rules,
71
+ 'class-naming': {
72
+ ...nameBase.childNodeRules[0].rules['class-naming'],
73
+ value: [
74
+ ...nameBase.childNodeRules[0].rules['class-naming'].value,
75
+ ...addNamingRules,
76
+ ],
77
+ },
78
+ },
79
+ },
80
+ nameBase.childNodeRules[1],
81
+ ],
82
+ };
83
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d-zero/markuplint-config",
3
- "version": "5.0.0-alpha.50",
3
+ "version": "5.0.0-alpha.52",
4
4
  "description": "Configurations of Markuplint",
5
5
  "repository": "https://github.com/d-zero-dev/linters.git",
6
6
  "author": "D-ZERO Co., Ltd.",
@@ -23,8 +23,8 @@
23
23
  "*.js"
24
24
  ],
25
25
  "dependencies": {
26
- "@markuplint/pug-parser": "4.6.12",
27
- "markuplint": "4.11.2"
26
+ "@markuplint/pug-parser": "4.6.14",
27
+ "markuplint": "4.11.4"
28
28
  },
29
- "gitHead": "3a4066e697bbacc9c8c55decd27c784818dd76c8"
29
+ "gitHead": "68e226da6791383d100854506fc048a757436283"
30
30
  }