-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathname.js
83 lines (81 loc) · 2.75 KB
/
name.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/**
* @type {import('@markuplint/ml-config').Config}
*/
const nameBase = {
rules: {
'class-naming': {
severity: 'error',
value: '/^c-(?<ComponentName>[a-z][a-z0-9]*(?:-[a-z0-9]+)*)$/',
reason:
'クラス名の形式はディーゼロのコーディングガイドラインに則って命名する必要があります。 http://tmpl.d-zero.com/__guideline/coding-guideline/html.html#%F0%9F%92%8E-%E3%82%B3%E3%83%B3%E3%83%9B%E3%82%9A%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88',
},
},
childNodeRules: [
{
regexSelector: {
attrName: 'class',
attrValue: '/^c-(?<ComponentName>[a-z][a-z0-9]*(?:-[a-z0-9]+)*)$/',
},
inheritance: true,
rules: {
'class-naming': {
severity: 'error',
value: [
'/^c-{{ ComponentName }}__[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/',
'/^c-(?!{{ ComponentName }})[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/',
'/^c-{{ ComponentName }}[a-z0-9]*(?:-[a-z0-9]+)*$/',
],
reason:
'ディーゼロのコーディングガイドラインではコンポーネントの中はそのコンポーネントのエレメントか、他のコンポーネントである必要があります。 http://tmpl.d-zero.com/__guideline/coding-guideline/html.html#%E3%82%B3%E3%83%B3%E3%83%9B%E3%82%9A%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E6%A7%8B%E6%88%90%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%B9%E5%91%BD%E5%90%8D%E8%A6%8F%E5%89%87',
},
},
},
{
selector: "[class='c-content-main']",
inheritance: true,
rules: {
'class-naming': {
severity: 'error',
value: '/^(?!c-).+$|^$/',
reason:
'ディーゼロのコーディングガイドラインでは「c-content-main」の中は「c-」で始めないルールとなっています。 http://tmpl.d-zero.com/__guideline/coding-guideline/html.html#%E3%82%A8%E3%83%AC%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E4%BE%8B%E5%A4%96%E3%81%A8%E3%82%AF%E3%83%A9%E3%82%B9%E8%BF%BD%E5%8A%A0%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB',
},
},
},
],
};
/**
* @type {import('@markuplint/ml-config').Config}
*/
export default nameBase;
/**
* @type {(addNamingRule: string[]) => import('@markuplint/ml-config').Config}
*/
export const nameWith = (addNamingRules) => {
return {
...nameBase,
rules: {
...nameBase.rules,
'class-naming': {
...nameBase.rules['class-naming'],
value: [nameBase.rules['class-naming'].value, ...addNamingRules],
},
},
childNodeRules: [
{
...nameBase.childNodeRules[0],
rules: {
...nameBase.childNodeRules[0].rules,
'class-naming': {
...nameBase.childNodeRules[0].rules['class-naming'],
value: [
...nameBase.childNodeRules[0].rules['class-naming'].value,
...addNamingRules,
],
},
},
},
nameBase.childNodeRules[1],
],
};
};