wikiparser-node 1.5.3 → 1.5.4
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/dist/lib/element.d.ts +2 -1
- package/dist/lib/element.js +3 -2
- package/dist/lib/text.d.ts +2 -1
- package/dist/lib/text.js +8 -15
- package/dist/src/arg.d.ts +1 -1
- package/dist/src/arg.js +3 -3
- package/dist/src/attribute.d.ts +1 -1
- package/dist/src/attribute.js +2 -2
- package/dist/src/attributes.d.ts +1 -1
- package/dist/src/attributes.js +2 -2
- package/dist/src/converterFlags.d.ts +1 -1
- package/dist/src/converterFlags.js +2 -2
- package/dist/src/extLink.d.ts +1 -1
- package/dist/src/extLink.js +2 -2
- package/dist/src/gallery.d.ts +1 -1
- package/dist/src/gallery.js +2 -2
- package/dist/src/heading.d.ts +1 -1
- package/dist/src/heading.js +2 -2
- package/dist/src/html.d.ts +1 -1
- package/dist/src/html.js +2 -2
- package/dist/src/imageParameter.d.ts +1 -1
- package/dist/src/imageParameter.js +2 -2
- package/dist/src/imagemap.d.ts +1 -1
- package/dist/src/imagemap.js +2 -2
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/link/base.d.ts +1 -1
- package/dist/src/link/base.js +2 -2
- package/dist/src/link/file.d.ts +1 -1
- package/dist/src/link/file.js +2 -2
- package/dist/src/link/galleryImage.d.ts +1 -1
- package/dist/src/link/galleryImage.js +2 -2
- package/dist/src/link/index.d.ts +1 -1
- package/dist/src/link/index.js +2 -2
- package/dist/src/magicLink.d.ts +1 -1
- package/dist/src/magicLink.js +2 -2
- package/dist/src/nested.d.ts +1 -1
- package/dist/src/nested.js +2 -2
- package/dist/src/nowiki/index.js +1 -1
- package/dist/src/parameter.d.ts +1 -1
- package/dist/src/parameter.js +2 -2
- package/dist/src/pre.d.ts +3 -0
- package/dist/src/pre.js +4 -0
- package/dist/src/table/index.d.ts +1 -1
- package/dist/src/table/index.js +2 -2
- package/dist/src/table/td.d.ts +1 -1
- package/dist/src/table/td.js +2 -2
- package/dist/src/table/trBase.d.ts +1 -1
- package/dist/src/table/trBase.js +2 -2
- package/dist/src/tagPair/ext.d.ts +1 -1
- package/dist/src/tagPair/ext.js +2 -2
- package/dist/src/transclude.d.ts +1 -1
- package/dist/src/transclude.js +2 -2
- package/package.json +1 -1
package/dist/lib/element.d.ts
CHANGED
|
@@ -75,8 +75,9 @@ export declare abstract class AstElement extends AstNode {
|
|
|
75
75
|
/**
|
|
76
76
|
* @override
|
|
77
77
|
* @param start
|
|
78
|
+
* @param re 用于`AstText`后代节点的正则表达式
|
|
78
79
|
*/
|
|
79
|
-
lint(start?: number): LintError[];
|
|
80
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
80
81
|
/**
|
|
81
82
|
* @override
|
|
82
83
|
* @param opt 选项
|
package/dist/lib/element.js
CHANGED
|
@@ -239,12 +239,13 @@ class AstElement extends node_1.AstNode {
|
|
|
239
239
|
/**
|
|
240
240
|
* @override
|
|
241
241
|
* @param start
|
|
242
|
+
* @param re 用于`AstText`后代节点的正则表达式
|
|
242
243
|
*/
|
|
243
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
244
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
244
245
|
const errors = [];
|
|
245
246
|
for (let i = 0, cur = start + this.getAttribute('padding'); i < this.length; i++) {
|
|
246
247
|
const child = this.childNodes[i];
|
|
247
|
-
errors.push(...child.lint(cur));
|
|
248
|
+
errors.push(...child.lint(cur, re));
|
|
248
249
|
cur += String(child).length + this.getGaps(i);
|
|
249
250
|
}
|
|
250
251
|
return errors;
|
package/dist/lib/text.d.ts
CHANGED
|
@@ -15,9 +15,10 @@ export declare class AstText extends AstNode {
|
|
|
15
15
|
/**
|
|
16
16
|
* @override
|
|
17
17
|
* @param start
|
|
18
|
+
* @param errorRegex 正则表达式
|
|
18
19
|
* @throws `Error` 孤立文本节点
|
|
19
20
|
*/
|
|
20
|
-
lint(start?: number): LintError[];
|
|
21
|
+
lint(start?: number, errorRegex?: RegExp): LintError[];
|
|
21
22
|
/**
|
|
22
23
|
* 替换字符串
|
|
23
24
|
* @param text 替换的字符串
|
package/dist/lib/text.js
CHANGED
|
@@ -112,16 +112,17 @@ class AstText extends node_1.AstNode {
|
|
|
112
112
|
/**
|
|
113
113
|
* @override
|
|
114
114
|
* @param start
|
|
115
|
+
* @param errorRegex 正则表达式
|
|
115
116
|
* @throws `Error` 孤立文本节点
|
|
116
117
|
*/
|
|
117
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
118
|
+
lint(start = this.getAbsoluteIndex(), errorRegex) {
|
|
118
119
|
const { data, parentNode, nextSibling, previousSibling } = this;
|
|
119
120
|
if (!parentNode) {
|
|
120
121
|
/* NOT FOR BROWSER */
|
|
121
122
|
throw new Error('无法对孤立文本节点进行语法分析!');
|
|
122
123
|
/* NOT FOR BROWSER END */
|
|
123
124
|
}
|
|
124
|
-
const { type, name, parentNode: grandparent } = parentNode
|
|
125
|
+
const { type, name, parentNode: grandparent } = parentNode;
|
|
125
126
|
let isHtmlAttrVal = false;
|
|
126
127
|
if (type === 'attr-value') {
|
|
127
128
|
const { type: grandType, name: grandName, tag } = grandparent;
|
|
@@ -132,20 +133,12 @@ class AstText extends node_1.AstNode {
|
|
|
132
133
|
return [];
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
|
-
|
|
136
|
-
let errorRegex;
|
|
137
|
-
if (type === 'ext-inner' && (name === 'pre' || parentNode instanceof NowikiToken)) {
|
|
138
|
-
errorRegex = new RegExp(`<\\s*(?:\\/\\s*)${nowiki ? '' : '?'}(${name})\\b`, 'giu');
|
|
139
|
-
}
|
|
140
|
-
else if (type === 'free-ext-link'
|
|
136
|
+
errorRegex ??= type === 'free-ext-link'
|
|
141
137
|
|| type === 'ext-link-url'
|
|
142
138
|
|| type === 'image-parameter' && name === 'link'
|
|
143
|
-
|| isHtmlAttrVal
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
else {
|
|
147
|
-
errorRegex = errorSyntax;
|
|
148
|
-
}
|
|
139
|
+
|| isHtmlAttrVal
|
|
140
|
+
? errorSyntaxUrl
|
|
141
|
+
: errorSyntax;
|
|
149
142
|
if (data.search(errorRegex) === -1) {
|
|
150
143
|
return [];
|
|
151
144
|
}
|
|
@@ -172,7 +165,7 @@ class AstText extends node_1.AstNode {
|
|
|
172
165
|
else if (char === ']' && (index || length > 1)) {
|
|
173
166
|
errorRegex.lastIndex--;
|
|
174
167
|
}
|
|
175
|
-
const startIndex = start + index, endIndex = startIndex + length, rootStr = String(root), nextChar = rootStr[endIndex], previousChar = rootStr[startIndex - 1], severity = length > 1 && !(char === '<' &&
|
|
168
|
+
const startIndex = start + index, endIndex = startIndex + length, rootStr = String(root), nextChar = rootStr[endIndex], previousChar = rootStr[startIndex - 1], severity = length > 1 && !(char === '<' && !/[\s/>]/u.test(nextChar ?? '')
|
|
176
169
|
|| isHtmlAttrVal && (char === '[' || char === ']'))
|
|
177
170
|
|| char === '{' && (nextChar === char || previousChar === '-')
|
|
178
171
|
|| char === '}' && (previousChar === char || nextChar === '-')
|
package/dist/src/arg.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare abstract class ArgToken extends Token {
|
|
|
25
25
|
/** @override */
|
|
26
26
|
text(): string;
|
|
27
27
|
/** @override */
|
|
28
|
-
lint(start?: number): LintError[];
|
|
28
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
29
29
|
/** @override */
|
|
30
30
|
print(): string;
|
|
31
31
|
/** @override */
|
package/dist/src/arg.js
CHANGED
|
@@ -70,7 +70,7 @@ class ArgToken extends index_2.Token {
|
|
|
70
70
|
return 1;
|
|
71
71
|
}
|
|
72
72
|
/** @override */
|
|
73
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
73
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
74
74
|
const { childNodes: [argName, argDefault, ...rest] } = this;
|
|
75
75
|
if (!this.getAttribute('include')) {
|
|
76
76
|
const e = (0, lint_1.generateForSelf)(this, { start }, 'no-arg', 'unexpected template argument');
|
|
@@ -82,9 +82,9 @@ class ArgToken extends index_2.Token {
|
|
|
82
82
|
}
|
|
83
83
|
return [e];
|
|
84
84
|
}
|
|
85
|
-
const errors = argName.lint(start + 3);
|
|
85
|
+
const errors = argName.lint(start + 3, re);
|
|
86
86
|
if (argDefault) {
|
|
87
|
-
errors.push(...argDefault.lint(start + 4 + String(argName).length));
|
|
87
|
+
errors.push(...argDefault.lint(start + 4 + String(argName).length, re));
|
|
88
88
|
}
|
|
89
89
|
if (rest.length > 0) {
|
|
90
90
|
const rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/attribute.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export declare abstract class AttributeToken extends Token {
|
|
|
44
44
|
/** @override */
|
|
45
45
|
text(): string;
|
|
46
46
|
/** @override */
|
|
47
|
-
lint(start?: number): LintError[];
|
|
47
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
48
48
|
/** 获取属性值 */
|
|
49
49
|
getValue(): string | true;
|
|
50
50
|
/** @override */
|
package/dist/src/attribute.js
CHANGED
|
@@ -341,8 +341,8 @@ let AttributeToken = (() => {
|
|
|
341
341
|
return this.#equal ? this.#equal.length + (this.#quotes[0]?.length ?? 0) : 0;
|
|
342
342
|
}
|
|
343
343
|
/** @override */
|
|
344
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
345
|
-
const errors = super.lint(start), { balanced, firstChild, lastChild, type, name, tag } = this, value = this.getValue();
|
|
344
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
345
|
+
const errors = super.lint(start, re), { balanced, firstChild, lastChild, type, name, tag } = this, value = this.getValue();
|
|
346
346
|
let rect;
|
|
347
347
|
if (!balanced) {
|
|
348
348
|
const root = this.getRootNode();
|
package/dist/src/attributes.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export declare abstract class AttributesToken extends Token {
|
|
|
59
59
|
*/
|
|
60
60
|
getAttr(key: string): string | true | undefined;
|
|
61
61
|
/** @override */
|
|
62
|
-
lint(start?: number): LintError[];
|
|
62
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
63
63
|
/** @override */
|
|
64
64
|
print(): string;
|
|
65
65
|
/** 清理无效属性 */
|
package/dist/src/attributes.js
CHANGED
|
@@ -144,8 +144,8 @@ class AttributesToken extends index_2.Token {
|
|
|
144
144
|
return this.getAttrToken(key)?.getValue();
|
|
145
145
|
}
|
|
146
146
|
/** @override */
|
|
147
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
148
|
-
const errors = super.lint(start), { parentNode, length, childNodes } = this, attrs = new Map(), duplicated = new Set();
|
|
147
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
148
|
+
const errors = super.lint(start, re), { parentNode, length, childNodes } = this, attrs = new Map(), duplicated = new Set();
|
|
149
149
|
let rect;
|
|
150
150
|
if (parentNode?.type === 'html' && parentNode.closing && this.text().trim()) {
|
|
151
151
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
@@ -34,7 +34,7 @@ export declare abstract class ConverterFlagsToken extends Token {
|
|
|
34
34
|
/** 获取指定语言变体的转换标记 */
|
|
35
35
|
getVariantFlags(): Set<string>;
|
|
36
36
|
/** @override */
|
|
37
|
-
lint(start?: number): LintError[];
|
|
37
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
38
38
|
/** @override */
|
|
39
39
|
print(): string;
|
|
40
40
|
/** @override */
|
|
@@ -66,8 +66,8 @@ class ConverterFlagsToken extends index_2.Token {
|
|
|
66
66
|
return new Set(this.#flags.filter(flag => variants.has(flag)));
|
|
67
67
|
}
|
|
68
68
|
/** @override */
|
|
69
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
70
|
-
const variantFlags = this.getVariantFlags(), unknownFlags = this.getUnknownFlags(), validFlags = new Set(this.#flags.filter(flag => definedFlags.has(flag))), emptyFlagCount = this.#flags.filter(flag => !flag).length, knownFlagCount = this.#flags.length - unknownFlags.size - emptyFlagCount, errors = super.lint(start);
|
|
69
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
70
|
+
const variantFlags = this.getVariantFlags(), unknownFlags = this.getUnknownFlags(), validFlags = new Set(this.#flags.filter(flag => definedFlags.has(flag))), emptyFlagCount = this.#flags.filter(flag => !flag).length, knownFlagCount = this.#flags.length - unknownFlags.size - emptyFlagCount, errors = super.lint(start, re);
|
|
71
71
|
if (variantFlags.size === knownFlagCount || validFlags.size === knownFlagCount) {
|
|
72
72
|
return errors;
|
|
73
73
|
}
|
package/dist/src/extLink.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare abstract class ExtLinkToken extends Token {
|
|
|
30
30
|
/** @override */
|
|
31
31
|
text(): string;
|
|
32
32
|
/** @override */
|
|
33
|
-
lint(start?: number): LintError[];
|
|
33
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
34
34
|
/** @override */
|
|
35
35
|
print(): string;
|
|
36
36
|
/** @override */
|
package/dist/src/extLink.js
CHANGED
|
@@ -127,8 +127,8 @@ let ExtLinkToken = (() => {
|
|
|
127
127
|
return this.#space.length;
|
|
128
128
|
}
|
|
129
129
|
/** @override */
|
|
130
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
131
|
-
const errors = super.lint(start);
|
|
130
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
131
|
+
const errors = super.lint(start, re);
|
|
132
132
|
if (this.length === 1 && this.closest('heading-title')) {
|
|
133
133
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'var-anchor', 'variable anchor in a section header'));
|
|
134
134
|
}
|
package/dist/src/gallery.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare abstract class GalleryToken extends Token {
|
|
|
31
31
|
/** @override */
|
|
32
32
|
text(): string;
|
|
33
33
|
/** @override */
|
|
34
|
-
lint(start?: number): LintError[];
|
|
34
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
35
35
|
/** @override */
|
|
36
36
|
print(): string;
|
|
37
37
|
/** @override */
|
package/dist/src/gallery.js
CHANGED
|
@@ -61,7 +61,7 @@ class GalleryToken extends index_2.Token {
|
|
|
61
61
|
return 1;
|
|
62
62
|
}
|
|
63
63
|
/** @override */
|
|
64
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
64
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
65
65
|
const { top, left } = this.getRootNode().posFromIndex(start), errors = [];
|
|
66
66
|
for (let i = 0; i < this.length; i++) {
|
|
67
67
|
const child = this.childNodes[i], str = String(child), { length } = str, trimmed = str.trim(), startLine = top + i, startCol = i ? 0 : left;
|
|
@@ -91,7 +91,7 @@ class GalleryToken extends index_2.Token {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
else if (child.type !== 'noinclude' && child.type !== 'text') {
|
|
94
|
-
errors.push(...child.lint(start));
|
|
94
|
+
errors.push(...child.lint(start, re));
|
|
95
95
|
}
|
|
96
96
|
start += length + 1;
|
|
97
97
|
}
|
package/dist/src/heading.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare abstract class HeadingToken extends Token {
|
|
|
30
30
|
/** @override */
|
|
31
31
|
text(): string;
|
|
32
32
|
/** @override */
|
|
33
|
-
lint(start?: number): LintError[];
|
|
33
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
34
34
|
/** @override */
|
|
35
35
|
print(): string;
|
|
36
36
|
/** @override */
|
package/dist/src/heading.js
CHANGED
|
@@ -124,8 +124,8 @@ let HeadingToken = (() => {
|
|
|
124
124
|
return this.level;
|
|
125
125
|
}
|
|
126
126
|
/** @override */
|
|
127
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
128
|
-
const errors = super.lint(start), { firstChild, level } = this, innerStr = String(firstChild), quotes = firstChild.childNodes.filter((node) => node.type === 'quote'), boldQuotes = quotes.filter(({ bold }) => bold), italicQuotes = quotes.filter(({ italic }) => italic);
|
|
127
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
128
|
+
const errors = super.lint(start, re), { firstChild, level } = this, innerStr = String(firstChild), quotes = firstChild.childNodes.filter((node) => node.type === 'quote'), boldQuotes = quotes.filter(({ bold }) => bold), italicQuotes = quotes.filter(({ italic }) => italic);
|
|
129
129
|
let rect;
|
|
130
130
|
if (this.level === 1) {
|
|
131
131
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/html.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export declare abstract class HtmlToken extends Token {
|
|
|
37
37
|
/** @override */
|
|
38
38
|
text(): string;
|
|
39
39
|
/** @override */
|
|
40
|
-
lint(start?: number): LintError[];
|
|
40
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
41
41
|
/**
|
|
42
42
|
* 搜索匹配的标签
|
|
43
43
|
* @throws `SyntaxError` 同时闭合和自封闭的标签
|
package/dist/src/html.js
CHANGED
|
@@ -177,8 +177,8 @@ let HtmlToken = (() => {
|
|
|
177
177
|
: super.getAttribute(key);
|
|
178
178
|
}
|
|
179
179
|
/** @override */
|
|
180
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
181
|
-
const errors = super.lint(start);
|
|
180
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
181
|
+
const errors = super.lint(start, re);
|
|
182
182
|
let refError;
|
|
183
183
|
if (this.name === 'h1' && !this.closing) {
|
|
184
184
|
refError = (0, lint_1.generateForSelf)(this, { start }, 'h1', '<h1>');
|
|
@@ -41,7 +41,7 @@ export declare abstract class ImageParameterToken extends Token {
|
|
|
41
41
|
/** @override */
|
|
42
42
|
text(): string;
|
|
43
43
|
/** @override */
|
|
44
|
-
lint(start?: number): LintError[];
|
|
44
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
45
45
|
/** 获取参数值 */
|
|
46
46
|
getValue(): string | true;
|
|
47
47
|
/** @override */
|
|
@@ -171,8 +171,8 @@ class ImageParameterToken extends index_2.Token {
|
|
|
171
171
|
: super.getAttribute(key);
|
|
172
172
|
}
|
|
173
173
|
/** @override */
|
|
174
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
175
|
-
const errors = super.lint(start), { link, name } = this;
|
|
174
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
175
|
+
const errors = super.lint(start, re), { link, name } = this;
|
|
176
176
|
if (name === 'invalid') {
|
|
177
177
|
const e = (0, lint_1.generateForSelf)(this, { start }, 'invalid-gallery', 'invalid gallery image parameter');
|
|
178
178
|
e.fix = {
|
package/dist/src/imagemap.d.ts
CHANGED
package/dist/src/imagemap.js
CHANGED
|
@@ -97,8 +97,8 @@ class ImagemapToken extends index_2.Token {
|
|
|
97
97
|
return 1;
|
|
98
98
|
}
|
|
99
99
|
/** @override */
|
|
100
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
101
|
-
const errors = super.lint(start), rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
100
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
101
|
+
const errors = super.lint(start, re), rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
102
102
|
if (this.image) {
|
|
103
103
|
errors.push(...this.childNodes.filter(child => {
|
|
104
104
|
const str = String(child).trim();
|
package/dist/src/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare class Token extends AstElement {
|
|
|
42
42
|
*/
|
|
43
43
|
normalizeTitle(title: string, defaultNs?: number, halfParsed?: boolean, decode?: boolean, selfLink?: boolean): Title;
|
|
44
44
|
/** @override */
|
|
45
|
-
lint(start?: number): LintError[];
|
|
45
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
46
46
|
/**
|
|
47
47
|
* @override
|
|
48
48
|
* @param i 移除位置
|
package/dist/src/index.js
CHANGED
|
@@ -399,8 +399,8 @@ class Token extends element_1.AstElement {
|
|
|
399
399
|
}
|
|
400
400
|
/* NOT FOR BROWSER */
|
|
401
401
|
/** @override */
|
|
402
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
403
|
-
const errors = super.lint(start);
|
|
402
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
403
|
+
const errors = super.lint(start, re);
|
|
404
404
|
if (this.type === 'root') {
|
|
405
405
|
const record = {};
|
|
406
406
|
for (const cat of this.querySelectorAll('category')) {
|
package/dist/src/link/base.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export declare abstract class LinkBaseToken extends Token {
|
|
|
32
32
|
/** @override */
|
|
33
33
|
text(): string;
|
|
34
34
|
/** @override */
|
|
35
|
-
lint(start?: number): LintError[];
|
|
35
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
36
36
|
/** @override */
|
|
37
37
|
print(): string;
|
|
38
38
|
/** @override */
|
package/dist/src/link/base.js
CHANGED
|
@@ -130,8 +130,8 @@ class LinkBaseToken extends index_2.Token {
|
|
|
130
130
|
return i === 0 ? this.#delimiter.length : 1;
|
|
131
131
|
}
|
|
132
132
|
/** @override */
|
|
133
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
134
|
-
const errors = super.lint(start), { childNodes: [target, linkText], type: linkType } = this, { encoded, fragment } = this.#title;
|
|
133
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
134
|
+
const errors = super.lint(start, re), { childNodes: [target, linkText], type: linkType } = this, { encoded, fragment } = this.#title;
|
|
135
135
|
let rect;
|
|
136
136
|
if (target.childNodes.some(({ type }) => type === 'template')) {
|
|
137
137
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/link/file.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare abstract class FileToken extends LinkBaseToken {
|
|
|
42
42
|
*/
|
|
43
43
|
constructor(link: string, text?: string, config?: Parser.Config, accum?: Token[], delimiter?: string);
|
|
44
44
|
/** @override */
|
|
45
|
-
lint(start?: number): LintError[];
|
|
45
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
46
46
|
/** 获取所有图片参数节点 */
|
|
47
47
|
getAllArgs(): ImageParameterToken[];
|
|
48
48
|
/**
|
package/dist/src/link/file.js
CHANGED
|
@@ -105,8 +105,8 @@ class FileToken extends base_1.LinkBaseToken {
|
|
|
105
105
|
part => new imageParameter_1.ImageParameterToken(part, extension, config, accum)));
|
|
106
106
|
}
|
|
107
107
|
/** @override */
|
|
108
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
109
|
-
const errors = super.lint(start), args = this.getAllArgs().filter(({ childNodes }) => {
|
|
108
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
109
|
+
const errors = super.lint(start, re), args = this.getAllArgs().filter(({ childNodes }) => {
|
|
110
110
|
const visibleNodes = childNodes.filter(node => node.text().trim());
|
|
111
111
|
return visibleNodes.length !== 1 || visibleNodes[0].type !== 'arg';
|
|
112
112
|
}), keys = [...new Set(args.map(({ name }) => name))].filter(key => key !== 'invalid'), frameKeys = keys.filter(key => frame.has(key)), horizAlignKeys = keys.filter(key => horizAlign.has(key)), vertAlignKeys = keys.filter(key => vertAlign.has(key));
|
|
@@ -19,7 +19,7 @@ export declare abstract class GalleryImageToken extends FileToken {
|
|
|
19
19
|
*/
|
|
20
20
|
constructor(type: GalleryTypes, link: string, text?: string, config?: Parser.Config, accum?: Token[]);
|
|
21
21
|
/** @override */
|
|
22
|
-
lint(start?: number): LintError[];
|
|
22
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
23
23
|
/**
|
|
24
24
|
* @override
|
|
25
25
|
* @param token 待插入的子节点
|
|
@@ -99,8 +99,8 @@ let GalleryImageToken = (() => {
|
|
|
99
99
|
return key === 'padding' ? 0 : super.getAttribute(key);
|
|
100
100
|
}
|
|
101
101
|
/** @override */
|
|
102
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
103
|
-
const errors = super.lint(start), { ns, interwiki } = this.getAttribute('title');
|
|
102
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
103
|
+
const errors = super.lint(start, re), { ns, interwiki } = this.getAttribute('title');
|
|
104
104
|
if (interwiki || ns !== 6) {
|
|
105
105
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'invalid-gallery', 'invalid gallery image'));
|
|
106
106
|
}
|
package/dist/src/link/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export declare abstract class LinkToken extends LinkBaseToken {
|
|
|
27
27
|
/** @throws `RangeError` 非法的跨维基前缀 */
|
|
28
28
|
set interwiki(interwiki: string);
|
|
29
29
|
/** @override */
|
|
30
|
-
lint(start?: number): LintError[];
|
|
30
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
31
31
|
/** @override */
|
|
32
32
|
setTarget(link: string): void;
|
|
33
33
|
/**
|
package/dist/src/link/index.js
CHANGED
|
@@ -48,8 +48,8 @@ class LinkToken extends base_1.LinkBaseToken {
|
|
|
48
48
|
}
|
|
49
49
|
/* NOT FOR BROWSER END */
|
|
50
50
|
/** @override */
|
|
51
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
52
|
-
const errors = super.lint(start);
|
|
51
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
52
|
+
const errors = super.lint(start, re);
|
|
53
53
|
if (this.closest('ext-link-text')) {
|
|
54
54
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'nested-link', 'internal link in an external link'));
|
|
55
55
|
}
|
package/dist/src/magicLink.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export declare abstract class MagicLinkToken extends Token {
|
|
|
32
32
|
*/
|
|
33
33
|
constructor(url?: string, doubleSlash?: boolean, config?: Parser.Config, accum?: Token[]);
|
|
34
34
|
/** @override */
|
|
35
|
-
lint(start?: number): LintError[];
|
|
35
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
36
36
|
/** @override */
|
|
37
37
|
cloneNode(): this;
|
|
38
38
|
/**
|
package/dist/src/magicLink.js
CHANGED
|
@@ -102,8 +102,8 @@ let MagicLinkToken = (() => {
|
|
|
102
102
|
this.setAttribute('pattern', new RegExp(`^(?:${config.protocol}${doubleSlash ? '|//' : ''})`, 'iu'));
|
|
103
103
|
}
|
|
104
104
|
/** @override */
|
|
105
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
106
|
-
const errors = super.lint(start), source = `[,;。:!?()]+${this.type === 'ext-link-url' ? '|\\|+' : ''}`, regex = new RegExp(source, 'u'), regexGlobal = new RegExp(source, 'gu');
|
|
105
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
106
|
+
const errors = super.lint(start, re), source = `[,;。:!?()]+${this.type === 'ext-link-url' ? '|\\|+' : ''}`, regex = new RegExp(source, 'u'), regexGlobal = new RegExp(source, 'gu');
|
|
107
107
|
let rect;
|
|
108
108
|
for (const child of this.childNodes) {
|
|
109
109
|
const { type, data } = child;
|
package/dist/src/nested.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare abstract class NestedToken extends Token {
|
|
|
31
31
|
*/
|
|
32
32
|
constructor(wikitext: string | undefined, regex: RegExp, tags: readonly string[], config?: Parser.Config, accum?: Token[]);
|
|
33
33
|
/** @override */
|
|
34
|
-
lint(start?: number): LintError[];
|
|
34
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
35
35
|
/**
|
|
36
36
|
* @override
|
|
37
37
|
* @param token 待插入的子节点
|
package/dist/src/nested.js
CHANGED
|
@@ -49,10 +49,10 @@ class NestedToken extends index_2.Token {
|
|
|
49
49
|
this.#regex = regex;
|
|
50
50
|
}
|
|
51
51
|
/** @override */
|
|
52
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
52
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
53
53
|
let rect;
|
|
54
54
|
return [
|
|
55
|
-
...super.lint(start),
|
|
55
|
+
...super.lint(start, re),
|
|
56
56
|
...this.childNodes.filter(child => {
|
|
57
57
|
if (child.type === 'ext' || child.type === 'comment') {
|
|
58
58
|
return false;
|
package/dist/src/nowiki/index.js
CHANGED
|
@@ -20,7 +20,7 @@ class NowikiToken extends base_1.NowikiBaseToken {
|
|
|
20
20
|
};
|
|
21
21
|
return [e];
|
|
22
22
|
}
|
|
23
|
-
return super.lint(start);
|
|
23
|
+
return super.lint(start, new RegExp(`<\\s*(?:\\/\\s*)${name === 'nowiki' ? '' : '?'}(${name})\\b`, 'giu'));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
exports.NowikiToken = NowikiToken;
|
package/dist/src/parameter.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare abstract class ParameterToken extends Token {
|
|
|
38
38
|
/** @override */
|
|
39
39
|
text(): string;
|
|
40
40
|
/** @override */
|
|
41
|
-
lint(start?: number): LintError[];
|
|
41
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
42
42
|
/** @override */
|
|
43
43
|
print(): string;
|
|
44
44
|
/** @override */
|
package/dist/src/parameter.js
CHANGED
|
@@ -153,10 +153,10 @@ let ParameterToken = (() => {
|
|
|
153
153
|
return this.anon ? 0 : 1;
|
|
154
154
|
}
|
|
155
155
|
/** @override */
|
|
156
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
156
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
157
157
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
158
158
|
/https?:\/\/(?:\[[\da-f:.]+\]|[^[\]<>"\t\n\p{Zs}])(?:[^[\]<>"\0\t\n\p{Zs}]|\0\d+c\x7F)*$/iu;
|
|
159
|
-
const errors = super.lint(start), { firstChild } = this, link = new RegExp(`https?://${string_1.extUrlCharFirst}${string_1.extUrlChar}$`, 'iu').exec(firstChild.text())?.[0];
|
|
159
|
+
const errors = super.lint(start, re), { firstChild } = this, link = new RegExp(`https?://${string_1.extUrlCharFirst}${string_1.extUrlChar}$`, 'iu').exec(firstChild.text())?.[0];
|
|
160
160
|
if (link && new URL(link).search) {
|
|
161
161
|
const e = (0, lint_1.generateForChild)(firstChild, { start }, 'unescaped', 'unescaped query string in an anonymous parameter');
|
|
162
162
|
e.startIndex = e.endIndex;
|
package/dist/src/pre.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Parser from '../index';
|
|
2
2
|
import { Token } from './index';
|
|
3
3
|
import { NoincludeToken } from './nowiki/noinclude';
|
|
4
|
+
import type { LintError } from '../base';
|
|
4
5
|
import type { AstText, AttributesToken, ExtToken, ConverterToken } from '../internal';
|
|
5
6
|
/**
|
|
6
7
|
* `<pre>`
|
|
@@ -24,5 +25,7 @@ export declare abstract class PreToken extends Token {
|
|
|
24
25
|
/** @class */
|
|
25
26
|
constructor(wikitext?: string, config?: Parser.Config, accum?: Token[]);
|
|
26
27
|
/** @override */
|
|
28
|
+
lint(start?: number): LintError[];
|
|
29
|
+
/** @override */
|
|
27
30
|
cloneNode(): this;
|
|
28
31
|
}
|
package/dist/src/pre.js
CHANGED
|
@@ -39,6 +39,10 @@ class PreToken extends index_2.Token {
|
|
|
39
39
|
getAttribute(key) {
|
|
40
40
|
return (key === 'plain') || super.getAttribute(key);
|
|
41
41
|
}
|
|
42
|
+
/** @override */
|
|
43
|
+
lint(start = this.getAbsoluteIndex()) {
|
|
44
|
+
return super.lint(start, /<\s*\/\s*(pre)\b/giu);
|
|
45
|
+
}
|
|
42
46
|
/* NOT FOR BROWSER */
|
|
43
47
|
/** @override */
|
|
44
48
|
cloneNode() {
|
|
@@ -34,7 +34,7 @@ export declare abstract class TableToken extends TrBaseToken {
|
|
|
34
34
|
*/
|
|
35
35
|
constructor(syntax: string, attr?: string, config?: Parser.Config, accum?: Token[]);
|
|
36
36
|
/** @override */
|
|
37
|
-
lint(start?: number): LintError[];
|
|
37
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
38
38
|
/**
|
|
39
39
|
* 闭合表格语法
|
|
40
40
|
* @param syntax 表格结尾语法
|
package/dist/src/table/index.js
CHANGED
|
@@ -38,8 +38,8 @@ class TableToken extends trBase_1.TrBaseToken {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
/** @override */
|
|
41
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
42
|
-
const errors = super.lint(start);
|
|
41
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
42
|
+
const errors = super.lint(start, re);
|
|
43
43
|
if (!this.closed) {
|
|
44
44
|
errors.push((0, lint_1.generateForChild)(this.firstChild, { start }, 'unclosed-table', index_1.default.msg('unclosed $1', 'table')));
|
|
45
45
|
}
|
package/dist/src/table/td.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export declare abstract class TdToken extends TableBaseToken {
|
|
|
45
45
|
/** @override */
|
|
46
46
|
text(): string;
|
|
47
47
|
/** @override */
|
|
48
|
-
lint(start?: number): LintError[];
|
|
48
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
49
49
|
/** @override */
|
|
50
50
|
print(): string;
|
|
51
51
|
/** @override */
|
package/dist/src/table/td.js
CHANGED
|
@@ -186,8 +186,8 @@ let TdToken = (() => {
|
|
|
186
186
|
return 0;
|
|
187
187
|
}
|
|
188
188
|
/** @override */
|
|
189
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
190
|
-
const errors = super.lint(start);
|
|
189
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
190
|
+
const errors = super.lint(start, re);
|
|
191
191
|
start += this.getRelativeIndex(this.length - 1);
|
|
192
192
|
for (const child of this.lastChild.childNodes) {
|
|
193
193
|
if (child.type === 'text') {
|
package/dist/src/table/trBase.js
CHANGED
|
@@ -10,8 +10,8 @@ const td_1 = require("./td");
|
|
|
10
10
|
/** 表格行或表格 */
|
|
11
11
|
class TrBaseToken extends base_1.TableBaseToken {
|
|
12
12
|
/** @override */
|
|
13
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
14
|
-
const errors = super.lint(start), inter = this.childNodes.find(({ type }) => type === 'table-inter');
|
|
13
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
14
|
+
const errors = super.lint(start, re), inter = this.childNodes.find(({ type }) => type === 'table-inter');
|
|
15
15
|
if (!inter) {
|
|
16
16
|
return errors;
|
|
17
17
|
}
|
|
@@ -26,7 +26,7 @@ export declare abstract class ExtToken extends TagPairToken {
|
|
|
26
26
|
*/
|
|
27
27
|
constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
|
|
28
28
|
/** @override */
|
|
29
|
-
lint(start?: number): LintError[];
|
|
29
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
30
30
|
/** @override */
|
|
31
31
|
cloneNode(): this;
|
|
32
32
|
}
|
package/dist/src/tagPair/ext.js
CHANGED
|
@@ -172,8 +172,8 @@ let ExtToken = (() => {
|
|
|
172
172
|
this.seal('closed', true);
|
|
173
173
|
}
|
|
174
174
|
/** @override */
|
|
175
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
176
|
-
const errors = super.lint(start);
|
|
175
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
176
|
+
const errors = super.lint(start, re);
|
|
177
177
|
let rect;
|
|
178
178
|
if (this.name !== 'nowiki' && this.closest('html-attrs, table-attrs')) {
|
|
179
179
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/transclude.d.ts
CHANGED
package/dist/src/transclude.js
CHANGED
|
@@ -223,8 +223,8 @@ class TranscludeToken extends index_2.Token {
|
|
|
223
223
|
return 1;
|
|
224
224
|
}
|
|
225
225
|
/** @override */
|
|
226
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
227
|
-
const errors = super.lint(start), { type, childNodes, length } = this;
|
|
226
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
227
|
+
const errors = super.lint(start, re), { type, childNodes, length } = this;
|
|
228
228
|
let rect;
|
|
229
229
|
if (!this.isTemplate()) {
|
|
230
230
|
return errors;
|