@enormora/eslint-config-base 0.0.35 → 0.0.36
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.
- package/package.json +1 -1
- package/presets/base/markdown-lint-rules.js +98 -0
- package/presets/base/markdown.js +3 -91
- package/sbom.cdx.json +4 -4
package/package.json
CHANGED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import markdownPlugin from '@eslint/markdown';
|
|
2
|
+
import markdownLinksPlugin from 'eslint-plugin-markdown-links';
|
|
3
|
+
import markdownPreferencesPlugin from 'eslint-plugin-markdown-preferences';
|
|
4
|
+
|
|
5
|
+
export const markdownLintPlugins = {
|
|
6
|
+
markdown: markdownPlugin,
|
|
7
|
+
'markdown-links': markdownLinksPlugin,
|
|
8
|
+
'markdown-preferences': markdownPreferencesPlugin
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const markdownLintRules = {
|
|
12
|
+
'markdown/fenced-code-language': 'error',
|
|
13
|
+
'markdown/fenced-code-meta': 'off',
|
|
14
|
+
'markdown/heading-increment': 'error',
|
|
15
|
+
'markdown/no-bare-urls': 'error',
|
|
16
|
+
'markdown/no-duplicate-definitions': 'error',
|
|
17
|
+
'markdown/no-duplicate-headings': 'error',
|
|
18
|
+
'markdown/no-empty-definitions': 'error',
|
|
19
|
+
'markdown/no-empty-images': 'error',
|
|
20
|
+
'markdown/no-empty-links': 'error',
|
|
21
|
+
'markdown/no-html': 'error',
|
|
22
|
+
'markdown/no-invalid-label-refs': 'error',
|
|
23
|
+
'markdown/no-missing-atx-heading-space': 'error',
|
|
24
|
+
'markdown/no-missing-label-refs': 'error',
|
|
25
|
+
'markdown/no-missing-link-fragments': 'error',
|
|
26
|
+
'markdown/no-multiple-h1': 'error',
|
|
27
|
+
'markdown/no-reference-like-urls': 'error',
|
|
28
|
+
'markdown/no-reversed-media-syntax': 'error',
|
|
29
|
+
'markdown/no-space-in-emphasis': 'error',
|
|
30
|
+
'markdown/no-unused-definitions': 'error',
|
|
31
|
+
'markdown/require-alt-text': 'error',
|
|
32
|
+
'markdown/table-column-count': 'error',
|
|
33
|
+
|
|
34
|
+
// markdown-links: external network check is opt-in to keep CI deterministic;
|
|
35
|
+
// local-path and fragment checks are pure wins.
|
|
36
|
+
'markdown-links/no-dead-urls': 'off',
|
|
37
|
+
'markdown-links/no-missing-fragments': 'error',
|
|
38
|
+
'markdown-links/no-missing-path': 'error',
|
|
39
|
+
'markdown-links/no-self-destination': 'error',
|
|
40
|
+
|
|
41
|
+
// markdown-preferences: many rules overlap with the active markdown formatter (dprint or
|
|
42
|
+
// prettier, depending on which base preset is used). We enable only the 8 rules from this
|
|
43
|
+
// plugin's `recommended` config (none of which fight either formatter) and explicitly turn
|
|
44
|
+
// the other 45 off. Override individually if a stricter style is desired.
|
|
45
|
+
'markdown-preferences/atx-heading-closing-sequence': 'off',
|
|
46
|
+
'markdown-preferences/atx-heading-closing-sequence-length': 'off',
|
|
47
|
+
'markdown-preferences/blockquote-marker-alignment': 'error',
|
|
48
|
+
'markdown-preferences/bullet-list-marker-style': 'off',
|
|
49
|
+
'markdown-preferences/canonical-code-block-language': 'off',
|
|
50
|
+
'markdown-preferences/code-fence-length': 'off',
|
|
51
|
+
'markdown-preferences/code-fence-spacing': 'off',
|
|
52
|
+
'markdown-preferences/code-fence-style': 'off',
|
|
53
|
+
'markdown-preferences/custom-container-marker-spacing': 'off',
|
|
54
|
+
'markdown-preferences/definitions-last': 'off',
|
|
55
|
+
'markdown-preferences/emoji-notation': 'off',
|
|
56
|
+
'markdown-preferences/emphasis-delimiters-style': 'off',
|
|
57
|
+
'markdown-preferences/hard-linebreak-style': 'error',
|
|
58
|
+
'markdown-preferences/heading-casing': 'off',
|
|
59
|
+
'markdown-preferences/indent': 'off',
|
|
60
|
+
'markdown-preferences/level1-heading-style': 'off',
|
|
61
|
+
'markdown-preferences/level2-heading-style': 'off',
|
|
62
|
+
'markdown-preferences/link-bracket-newline': 'off',
|
|
63
|
+
'markdown-preferences/link-bracket-spacing': 'off',
|
|
64
|
+
'markdown-preferences/link-destination-style': 'off',
|
|
65
|
+
'markdown-preferences/link-paren-newline': 'off',
|
|
66
|
+
'markdown-preferences/link-paren-spacing': 'off',
|
|
67
|
+
'markdown-preferences/link-title-style': 'off',
|
|
68
|
+
'markdown-preferences/list-marker-alignment': 'error',
|
|
69
|
+
'markdown-preferences/max-len': 'off',
|
|
70
|
+
'markdown-preferences/no-heading-trailing-punctuation': 'off',
|
|
71
|
+
'markdown-preferences/no-implicit-block-closing': 'error',
|
|
72
|
+
'markdown-preferences/no-laziness-blockquotes': 'error',
|
|
73
|
+
'markdown-preferences/no-multi-spaces': 'off',
|
|
74
|
+
'markdown-preferences/no-multiple-empty-lines': 'off',
|
|
75
|
+
'markdown-preferences/no-tabs': 'off',
|
|
76
|
+
'markdown-preferences/no-text-backslash-linebreak': 'error',
|
|
77
|
+
'markdown-preferences/no-trailing-spaces': 'off',
|
|
78
|
+
'markdown-preferences/ordered-list-marker-sequence': 'off',
|
|
79
|
+
'markdown-preferences/ordered-list-marker-start': 'off',
|
|
80
|
+
'markdown-preferences/ordered-list-marker-style': 'off',
|
|
81
|
+
'markdown-preferences/padded-custom-containers': 'off',
|
|
82
|
+
'markdown-preferences/padding-line-between-blocks': 'off',
|
|
83
|
+
'markdown-preferences/prefer-autolinks': 'error',
|
|
84
|
+
'markdown-preferences/prefer-fenced-code-blocks': 'error',
|
|
85
|
+
'markdown-preferences/prefer-inline-code-words': 'off',
|
|
86
|
+
'markdown-preferences/prefer-link-reference-definitions': 'off',
|
|
87
|
+
'markdown-preferences/prefer-linked-words': 'off',
|
|
88
|
+
'markdown-preferences/setext-heading-underline-length': 'off',
|
|
89
|
+
'markdown-preferences/sort-definitions': 'off',
|
|
90
|
+
'markdown-preferences/strikethrough-delimiters-style': 'off',
|
|
91
|
+
'markdown-preferences/table-header-casing': 'off',
|
|
92
|
+
'markdown-preferences/table-leading-trailing-pipes': 'off',
|
|
93
|
+
'markdown-preferences/table-pipe-alignment': 'off',
|
|
94
|
+
'markdown-preferences/table-pipe-spacing': 'off',
|
|
95
|
+
'markdown-preferences/thematic-break-character-style': 'off',
|
|
96
|
+
'markdown-preferences/thematic-break-length': 'off',
|
|
97
|
+
'markdown-preferences/thematic-break-sequence-pattern': 'off'
|
|
98
|
+
};
|
package/presets/base/markdown.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import dprintPlugin from '@ben_12/eslint-plugin-dprint';
|
|
2
|
-
import markdownPlugin from '@eslint/markdown';
|
|
3
|
-
import markdownLinksPlugin from 'eslint-plugin-markdown-links';
|
|
4
|
-
import markdownPreferencesPlugin from 'eslint-plugin-markdown-preferences';
|
|
5
2
|
import {
|
|
6
3
|
jsonDprintConfig,
|
|
7
4
|
markdownDprintConfig,
|
|
@@ -10,6 +7,7 @@ import {
|
|
|
10
7
|
yamlDprintConfig
|
|
11
8
|
} from './dprint-config.js';
|
|
12
9
|
import { dprintSettings } from './dprint-formatters.js';
|
|
10
|
+
import { markdownLintPlugins, markdownLintRules } from './markdown-lint-rules.js';
|
|
13
11
|
|
|
14
12
|
// `@eslint/markdown` declares `language: 'markdown/commonmark'` for .md files, which makes ESLint
|
|
15
13
|
// parse them into an mdast tree (root node `type: 'root'`). The stock `dprint/markdown` rule listens
|
|
@@ -32,9 +30,7 @@ const dprintMarkdownLanguageAdapter = {
|
|
|
32
30
|
export const markdownConfig = {
|
|
33
31
|
files: [ '**/*.md' ],
|
|
34
32
|
plugins: {
|
|
35
|
-
|
|
36
|
-
'markdown-links': markdownLinksPlugin,
|
|
37
|
-
'markdown-preferences': markdownPreferencesPlugin,
|
|
33
|
+
...markdownLintPlugins,
|
|
38
34
|
'dprint-markdown': dprintMarkdownLanguageAdapter
|
|
39
35
|
},
|
|
40
36
|
// Pinned to commonmark because @eslint/markdown@8.0.2's MarkdownSourceCode does not implement
|
|
@@ -58,90 +54,6 @@ export const markdownConfig = {
|
|
|
58
54
|
}
|
|
59
55
|
],
|
|
60
56
|
|
|
61
|
-
|
|
62
|
-
'markdown/fenced-code-meta': 'off',
|
|
63
|
-
'markdown/heading-increment': 'error',
|
|
64
|
-
'markdown/no-bare-urls': 'error',
|
|
65
|
-
'markdown/no-duplicate-definitions': 'error',
|
|
66
|
-
'markdown/no-duplicate-headings': 'error',
|
|
67
|
-
'markdown/no-empty-definitions': 'error',
|
|
68
|
-
'markdown/no-empty-images': 'error',
|
|
69
|
-
'markdown/no-empty-links': 'error',
|
|
70
|
-
'markdown/no-html': 'error',
|
|
71
|
-
'markdown/no-invalid-label-refs': 'error',
|
|
72
|
-
'markdown/no-missing-atx-heading-space': 'error',
|
|
73
|
-
'markdown/no-missing-label-refs': 'error',
|
|
74
|
-
'markdown/no-missing-link-fragments': 'error',
|
|
75
|
-
'markdown/no-multiple-h1': 'error',
|
|
76
|
-
'markdown/no-reference-like-urls': 'error',
|
|
77
|
-
'markdown/no-reversed-media-syntax': 'error',
|
|
78
|
-
'markdown/no-space-in-emphasis': 'error',
|
|
79
|
-
'markdown/no-unused-definitions': 'error',
|
|
80
|
-
'markdown/require-alt-text': 'error',
|
|
81
|
-
'markdown/table-column-count': 'error',
|
|
82
|
-
|
|
83
|
-
// markdown-links: external network check is opt-in to keep CI deterministic;
|
|
84
|
-
// local-path and fragment checks are pure wins.
|
|
85
|
-
'markdown-links/no-dead-urls': 'off',
|
|
86
|
-
'markdown-links/no-missing-fragments': 'error',
|
|
87
|
-
'markdown-links/no-missing-path': 'error',
|
|
88
|
-
'markdown-links/no-self-destination': 'error',
|
|
89
|
-
|
|
90
|
-
// markdown-preferences: many rules overlap with dprint/markdown formatting. We enable only
|
|
91
|
-
// the 8 rules from this plugin's `recommended` config (none of which fight dprint) and
|
|
92
|
-
// explicitly turn the other 45 off. Override individually if a stricter style is desired.
|
|
93
|
-
'markdown-preferences/atx-heading-closing-sequence': 'off',
|
|
94
|
-
'markdown-preferences/atx-heading-closing-sequence-length': 'off',
|
|
95
|
-
'markdown-preferences/blockquote-marker-alignment': 'error',
|
|
96
|
-
'markdown-preferences/bullet-list-marker-style': 'off',
|
|
97
|
-
'markdown-preferences/canonical-code-block-language': 'off',
|
|
98
|
-
'markdown-preferences/code-fence-length': 'off',
|
|
99
|
-
'markdown-preferences/code-fence-spacing': 'off',
|
|
100
|
-
'markdown-preferences/code-fence-style': 'off',
|
|
101
|
-
'markdown-preferences/custom-container-marker-spacing': 'off',
|
|
102
|
-
'markdown-preferences/definitions-last': 'off',
|
|
103
|
-
'markdown-preferences/emoji-notation': 'off',
|
|
104
|
-
'markdown-preferences/emphasis-delimiters-style': 'off',
|
|
105
|
-
'markdown-preferences/hard-linebreak-style': 'error',
|
|
106
|
-
'markdown-preferences/heading-casing': 'off',
|
|
107
|
-
'markdown-preferences/indent': 'off',
|
|
108
|
-
'markdown-preferences/level1-heading-style': 'off',
|
|
109
|
-
'markdown-preferences/level2-heading-style': 'off',
|
|
110
|
-
'markdown-preferences/link-bracket-newline': 'off',
|
|
111
|
-
'markdown-preferences/link-bracket-spacing': 'off',
|
|
112
|
-
'markdown-preferences/link-destination-style': 'off',
|
|
113
|
-
'markdown-preferences/link-paren-newline': 'off',
|
|
114
|
-
'markdown-preferences/link-paren-spacing': 'off',
|
|
115
|
-
'markdown-preferences/link-title-style': 'off',
|
|
116
|
-
'markdown-preferences/list-marker-alignment': 'error',
|
|
117
|
-
'markdown-preferences/max-len': 'off',
|
|
118
|
-
'markdown-preferences/no-heading-trailing-punctuation': 'off',
|
|
119
|
-
'markdown-preferences/no-implicit-block-closing': 'error',
|
|
120
|
-
'markdown-preferences/no-laziness-blockquotes': 'error',
|
|
121
|
-
'markdown-preferences/no-multi-spaces': 'off',
|
|
122
|
-
'markdown-preferences/no-multiple-empty-lines': 'off',
|
|
123
|
-
'markdown-preferences/no-tabs': 'off',
|
|
124
|
-
'markdown-preferences/no-text-backslash-linebreak': 'error',
|
|
125
|
-
'markdown-preferences/no-trailing-spaces': 'off',
|
|
126
|
-
'markdown-preferences/ordered-list-marker-sequence': 'off',
|
|
127
|
-
'markdown-preferences/ordered-list-marker-start': 'off',
|
|
128
|
-
'markdown-preferences/ordered-list-marker-style': 'off',
|
|
129
|
-
'markdown-preferences/padded-custom-containers': 'off',
|
|
130
|
-
'markdown-preferences/padding-line-between-blocks': 'off',
|
|
131
|
-
'markdown-preferences/prefer-autolinks': 'error',
|
|
132
|
-
'markdown-preferences/prefer-fenced-code-blocks': 'error',
|
|
133
|
-
'markdown-preferences/prefer-inline-code-words': 'off',
|
|
134
|
-
'markdown-preferences/prefer-link-reference-definitions': 'off',
|
|
135
|
-
'markdown-preferences/prefer-linked-words': 'off',
|
|
136
|
-
'markdown-preferences/setext-heading-underline-length': 'off',
|
|
137
|
-
'markdown-preferences/sort-definitions': 'off',
|
|
138
|
-
'markdown-preferences/strikethrough-delimiters-style': 'off',
|
|
139
|
-
'markdown-preferences/table-header-casing': 'off',
|
|
140
|
-
'markdown-preferences/table-leading-trailing-pipes': 'off',
|
|
141
|
-
'markdown-preferences/table-pipe-alignment': 'off',
|
|
142
|
-
'markdown-preferences/table-pipe-spacing': 'off',
|
|
143
|
-
'markdown-preferences/thematic-break-character-style': 'off',
|
|
144
|
-
'markdown-preferences/thematic-break-length': 'off',
|
|
145
|
-
'markdown-preferences/thematic-break-sequence-pattern': 'off'
|
|
57
|
+
...markdownLintRules
|
|
146
58
|
}
|
|
147
59
|
};
|
package/sbom.cdx.json
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@enormora/eslint-config-base",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
21
|
-
"purl": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
19
|
+
"version": "0.0.36",
|
|
20
|
+
"bom-ref": "pkg:npm/@enormora/eslint-config-base@0.0.36",
|
|
21
|
+
"purl": "pkg:npm/@enormora/eslint-config-base@0.0.36"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
"ref": "pkg:npm/@dprint/typescript@0.96.1"
|
|
333
333
|
},
|
|
334
334
|
{
|
|
335
|
-
"ref": "pkg:npm/@enormora/eslint-config-base@0.0.
|
|
335
|
+
"ref": "pkg:npm/@enormora/eslint-config-base@0.0.36",
|
|
336
336
|
"dependsOn": [
|
|
337
337
|
"pkg:npm/@ben_12/eslint-plugin-dprint@1.21.0",
|
|
338
338
|
"pkg:npm/@ben_12/eslint-simple-parser@0.1.0",
|