wikilint 2.5.3 → 2.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 +1 -1
- package/dist/lib/text.js +7 -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/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
package/dist/lib/element.js
CHANGED
|
@@ -108,12 +108,13 @@ class AstElement extends node_1.AstNode {
|
|
|
108
108
|
/**
|
|
109
109
|
* @override
|
|
110
110
|
* @param start
|
|
111
|
+
* @param re 用于`AstText`后代节点的正则表达式
|
|
111
112
|
*/
|
|
112
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
113
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
113
114
|
const errors = [];
|
|
114
115
|
for (let i = 0, cur = start + this.getAttribute('padding'); i < this.length; i++) {
|
|
115
116
|
const child = this.childNodes[i];
|
|
116
|
-
errors.push(...child.lint(cur));
|
|
117
|
+
errors.push(...child.lint(cur, re));
|
|
117
118
|
cur += String(child).length + this.getGaps(i);
|
|
118
119
|
}
|
|
119
120
|
return errors;
|
package/dist/lib/text.d.ts
CHANGED
package/dist/lib/text.js
CHANGED
|
@@ -78,12 +78,12 @@ class AstText extends node_1.AstNode {
|
|
|
78
78
|
* @override
|
|
79
79
|
* @param start
|
|
80
80
|
*/
|
|
81
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
81
|
+
lint(start = this.getAbsoluteIndex(), errorRegex) {
|
|
82
82
|
const { data, parentNode, nextSibling, previousSibling } = this;
|
|
83
83
|
if (!parentNode) {
|
|
84
84
|
return [];
|
|
85
85
|
}
|
|
86
|
-
const { type, name, parentNode: grandparent } = parentNode
|
|
86
|
+
const { type, name, parentNode: grandparent } = parentNode;
|
|
87
87
|
let isHtmlAttrVal = false;
|
|
88
88
|
if (type === 'attr-value') {
|
|
89
89
|
const { type: grandType, name: grandName, tag } = grandparent;
|
|
@@ -94,20 +94,12 @@ class AstText extends node_1.AstNode {
|
|
|
94
94
|
return [];
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
let errorRegex;
|
|
99
|
-
if (type === 'ext-inner' && (name === 'pre' || parentNode instanceof NowikiToken)) {
|
|
100
|
-
errorRegex = new RegExp(`<\\s*(?:\\/\\s*)${nowiki ? '' : '?'}(${name})\\b`, 'giu');
|
|
101
|
-
}
|
|
102
|
-
else if (type === 'free-ext-link'
|
|
97
|
+
errorRegex ??= type === 'free-ext-link'
|
|
103
98
|
|| type === 'ext-link-url'
|
|
104
99
|
|| type === 'image-parameter' && name === 'link'
|
|
105
|
-
|| isHtmlAttrVal
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
else {
|
|
109
|
-
errorRegex = errorSyntax;
|
|
110
|
-
}
|
|
100
|
+
|| isHtmlAttrVal
|
|
101
|
+
? errorSyntaxUrl
|
|
102
|
+
: errorSyntax;
|
|
111
103
|
if (data.search(errorRegex) === -1) {
|
|
112
104
|
return [];
|
|
113
105
|
}
|
|
@@ -134,7 +126,7 @@ class AstText extends node_1.AstNode {
|
|
|
134
126
|
else if (char === ']' && (index || length > 1)) {
|
|
135
127
|
errorRegex.lastIndex--;
|
|
136
128
|
}
|
|
137
|
-
const startIndex = start + index, endIndex = startIndex + length, rootStr = String(root), nextChar = rootStr[endIndex], previousChar = rootStr[startIndex - 1], severity = length > 1 && !(char === '<' &&
|
|
129
|
+
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 ?? '')
|
|
138
130
|
|| isHtmlAttrVal && (char === '[' || char === ']'))
|
|
139
131
|
|| char === '{' && (nextChar === char || previousChar === '-')
|
|
140
132
|
|| char === '}' && (previousChar === char || nextChar === '-')
|
package/dist/src/arg.d.ts
CHANGED
package/dist/src/arg.js
CHANGED
|
@@ -54,7 +54,7 @@ class ArgToken extends index_2.Token {
|
|
|
54
54
|
return 1;
|
|
55
55
|
}
|
|
56
56
|
/** @override */
|
|
57
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
57
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
58
58
|
const { childNodes: [argName, argDefault, ...rest] } = this;
|
|
59
59
|
if (!this.getAttribute('include')) {
|
|
60
60
|
const e = (0, lint_1.generateForSelf)(this, { start }, 'no-arg', 'unexpected template argument');
|
|
@@ -66,9 +66,9 @@ class ArgToken extends index_2.Token {
|
|
|
66
66
|
}
|
|
67
67
|
return [e];
|
|
68
68
|
}
|
|
69
|
-
const errors = argName.lint(start + 3);
|
|
69
|
+
const errors = argName.lint(start + 3, re);
|
|
70
70
|
if (argDefault) {
|
|
71
|
-
errors.push(...argDefault.lint(start + 4 + String(argName).length));
|
|
71
|
+
errors.push(...argDefault.lint(start + 4 + String(argName).length, re));
|
|
72
72
|
}
|
|
73
73
|
if (rest.length > 0) {
|
|
74
74
|
const rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/attribute.d.ts
CHANGED
package/dist/src/attribute.js
CHANGED
|
@@ -255,8 +255,8 @@ class AttributeToken extends index_2.Token {
|
|
|
255
255
|
return this.#equal ? this.#equal.length + (this.#quotes[0]?.length ?? 0) : 0;
|
|
256
256
|
}
|
|
257
257
|
/** @override */
|
|
258
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
259
|
-
const errors = super.lint(start), { balanced, firstChild, lastChild, type, name, tag } = this, value = this.getValue();
|
|
258
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
259
|
+
const errors = super.lint(start, re), { balanced, firstChild, lastChild, type, name, tag } = this, value = this.getValue();
|
|
260
260
|
let rect;
|
|
261
261
|
if (!balanced) {
|
|
262
262
|
const root = this.getRootNode();
|
package/dist/src/attributes.d.ts
CHANGED
package/dist/src/attributes.js
CHANGED
|
@@ -95,8 +95,8 @@ class AttributesToken extends index_2.Token {
|
|
|
95
95
|
return this.getAttrToken(key)?.getValue();
|
|
96
96
|
}
|
|
97
97
|
/** @override */
|
|
98
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
99
|
-
const errors = super.lint(start), { parentNode, length, childNodes } = this, attrs = new Map(), duplicated = new Set();
|
|
98
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
99
|
+
const errors = super.lint(start, re), { parentNode, length, childNodes } = this, attrs = new Map(), duplicated = new Set();
|
|
100
100
|
let rect;
|
|
101
101
|
if (parentNode?.type === 'html' && parentNode.closing && this.text().trim()) {
|
|
102
102
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
@@ -44,8 +44,8 @@ class ConverterFlagsToken extends index_2.Token {
|
|
|
44
44
|
return new Set(this.#flags.filter(flag => variants.has(flag)));
|
|
45
45
|
}
|
|
46
46
|
/** @override */
|
|
47
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
48
|
-
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);
|
|
47
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
48
|
+
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);
|
|
49
49
|
if (variantFlags.size === knownFlagCount || validFlags.size === knownFlagCount) {
|
|
50
50
|
return errors;
|
|
51
51
|
}
|
package/dist/src/extLink.d.ts
CHANGED
package/dist/src/extLink.js
CHANGED
|
@@ -50,8 +50,8 @@ class ExtLinkToken extends index_2.Token {
|
|
|
50
50
|
return this.#space.length;
|
|
51
51
|
}
|
|
52
52
|
/** @override */
|
|
53
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
54
|
-
const errors = super.lint(start);
|
|
53
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
54
|
+
const errors = super.lint(start, re);
|
|
55
55
|
if (this.length === 1 && this.closest('heading-title')) {
|
|
56
56
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'var-anchor', 'variable anchor in a section header'));
|
|
57
57
|
}
|
package/dist/src/gallery.d.ts
CHANGED
package/dist/src/gallery.js
CHANGED
|
@@ -52,7 +52,7 @@ class GalleryToken extends index_2.Token {
|
|
|
52
52
|
return 1;
|
|
53
53
|
}
|
|
54
54
|
/** @override */
|
|
55
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
55
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
56
56
|
const { top, left } = this.getRootNode().posFromIndex(start), errors = [];
|
|
57
57
|
for (let i = 0; i < this.length; i++) {
|
|
58
58
|
const child = this.childNodes[i], str = String(child), { length } = str, trimmed = str.trim(), startLine = top + i, startCol = i ? 0 : left;
|
|
@@ -82,7 +82,7 @@ class GalleryToken extends index_2.Token {
|
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
84
|
else if (child.type !== 'noinclude' && child.type !== 'text') {
|
|
85
|
-
errors.push(...child.lint(start));
|
|
85
|
+
errors.push(...child.lint(start, re));
|
|
86
86
|
}
|
|
87
87
|
start += length + 1;
|
|
88
88
|
}
|
package/dist/src/heading.d.ts
CHANGED
package/dist/src/heading.js
CHANGED
|
@@ -52,8 +52,8 @@ class HeadingToken extends index_2.Token {
|
|
|
52
52
|
return this.level;
|
|
53
53
|
}
|
|
54
54
|
/** @override */
|
|
55
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
56
|
-
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);
|
|
55
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
56
|
+
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);
|
|
57
57
|
let rect;
|
|
58
58
|
if (this.level === 1) {
|
|
59
59
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/html.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export declare abstract class HtmlToken extends Token {
|
|
|
27
27
|
/** @override */
|
|
28
28
|
text(): string;
|
|
29
29
|
/** @override */
|
|
30
|
-
lint(start?: number): LintError[];
|
|
30
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
31
31
|
/**
|
|
32
32
|
* 搜索匹配的标签
|
|
33
33
|
* @throws `SyntaxError` 同时闭合和自封闭的标签
|
package/dist/src/html.js
CHANGED
|
@@ -79,8 +79,8 @@ class HtmlToken extends index_2.Token {
|
|
|
79
79
|
: super.getAttribute(key);
|
|
80
80
|
}
|
|
81
81
|
/** @override */
|
|
82
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
83
|
-
const errors = super.lint(start);
|
|
82
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
83
|
+
const errors = super.lint(start, re);
|
|
84
84
|
let refError;
|
|
85
85
|
if (this.name === 'h1' && !this.closing) {
|
|
86
86
|
refError = (0, lint_1.generateForSelf)(this, { start }, 'h1', '<h1>');
|
|
@@ -19,7 +19,7 @@ export declare abstract class ImageParameterToken extends Token {
|
|
|
19
19
|
/** @override */
|
|
20
20
|
text(): string;
|
|
21
21
|
/** @override */
|
|
22
|
-
lint(start?: number): LintError[];
|
|
22
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
23
23
|
/** 获取参数值 */
|
|
24
24
|
getValue(): string | true;
|
|
25
25
|
}
|
|
@@ -102,8 +102,8 @@ class ImageParameterToken extends index_2.Token {
|
|
|
102
102
|
: super.getAttribute(key);
|
|
103
103
|
}
|
|
104
104
|
/** @override */
|
|
105
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
106
|
-
const errors = super.lint(start), { link, name } = this;
|
|
105
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
106
|
+
const errors = super.lint(start, re), { link, name } = this;
|
|
107
107
|
if (name === 'invalid') {
|
|
108
108
|
const e = (0, lint_1.generateForSelf)(this, { start }, 'invalid-gallery', 'invalid gallery image parameter');
|
|
109
109
|
e.fix = {
|
package/dist/src/imagemap.d.ts
CHANGED
package/dist/src/imagemap.js
CHANGED
|
@@ -86,8 +86,8 @@ class ImagemapToken extends index_2.Token {
|
|
|
86
86
|
return 1;
|
|
87
87
|
}
|
|
88
88
|
/** @override */
|
|
89
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
90
|
-
const errors = super.lint(start), rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
89
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
90
|
+
const errors = super.lint(start, re), rect = { start, ...this.getRootNode().posFromIndex(start) };
|
|
91
91
|
if (this.image) {
|
|
92
92
|
errors.push(...this.childNodes.filter(child => {
|
|
93
93
|
const str = String(child).trim();
|
package/dist/src/link/base.d.ts
CHANGED
package/dist/src/link/base.js
CHANGED
|
@@ -71,8 +71,8 @@ class LinkBaseToken extends index_2.Token {
|
|
|
71
71
|
return i === 0 ? this.#delimiter.length : 1;
|
|
72
72
|
}
|
|
73
73
|
/** @override */
|
|
74
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
75
|
-
const errors = super.lint(start), { childNodes: [target, linkText], type: linkType } = this, { encoded, fragment } = this.#title;
|
|
74
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
75
|
+
const errors = super.lint(start, re), { childNodes: [target, linkText], type: linkType } = this, { encoded, fragment } = this.#title;
|
|
76
76
|
let rect;
|
|
77
77
|
if (target.childNodes.some(({ type }) => type === 'template')) {
|
|
78
78
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/link/file.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare abstract class FileToken extends LinkBaseToken {
|
|
|
21
21
|
*/
|
|
22
22
|
constructor(link: string, text?: string, config?: Parser.Config, accum?: Token[], delimiter?: string);
|
|
23
23
|
/** @override */
|
|
24
|
-
lint(start?: number): LintError[];
|
|
24
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
25
25
|
/** 获取所有图片参数节点 */
|
|
26
26
|
getAllArgs(): ImageParameterToken[];
|
|
27
27
|
/**
|
package/dist/src/link/file.js
CHANGED
|
@@ -57,8 +57,8 @@ class FileToken extends base_1.LinkBaseToken {
|
|
|
57
57
|
part => new imageParameter_1.ImageParameterToken(part, extension, config, accum)));
|
|
58
58
|
}
|
|
59
59
|
/** @override */
|
|
60
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
61
|
-
const errors = super.lint(start), args = this.getAllArgs().filter(({ childNodes }) => {
|
|
60
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
61
|
+
const errors = super.lint(start, re), args = this.getAllArgs().filter(({ childNodes }) => {
|
|
62
62
|
const visibleNodes = childNodes.filter(node => node.text().trim());
|
|
63
63
|
return visibleNodes.length !== 1 || visibleNodes[0].type !== 'arg';
|
|
64
64
|
}), 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));
|
|
@@ -15,6 +15,6 @@ export declare abstract class GalleryImageToken extends FileToken {
|
|
|
15
15
|
*/
|
|
16
16
|
constructor(type: GalleryTypes, link: string, text?: string, config?: Parser.Config, accum?: Token[]);
|
|
17
17
|
/** @override */
|
|
18
|
-
lint(start?: number): LintError[];
|
|
18
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
19
19
|
}
|
|
20
20
|
export {};
|
|
@@ -37,8 +37,8 @@ class GalleryImageToken extends file_1.FileToken {
|
|
|
37
37
|
return key === 'padding' ? 0 : super.getAttribute(key);
|
|
38
38
|
}
|
|
39
39
|
/** @override */
|
|
40
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
41
|
-
const errors = super.lint(start), { ns, interwiki } = this.getAttribute('title');
|
|
40
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
41
|
+
const errors = super.lint(start, re), { ns, interwiki } = this.getAttribute('title');
|
|
42
42
|
if (interwiki || ns !== 6) {
|
|
43
43
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'invalid-gallery', 'invalid gallery image'));
|
|
44
44
|
}
|
package/dist/src/link/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export declare abstract class LinkToken extends LinkBaseToken {
|
|
|
9
9
|
readonly type = "link";
|
|
10
10
|
readonly childNodes: readonly [AtomToken] | readonly [AtomToken, Token];
|
|
11
11
|
/** @override */
|
|
12
|
-
lint(start?: number): LintError[];
|
|
12
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
13
13
|
}
|
package/dist/src/link/index.js
CHANGED
|
@@ -10,8 +10,8 @@ const base_1 = require("./base");
|
|
|
10
10
|
class LinkToken extends base_1.LinkBaseToken {
|
|
11
11
|
type = 'link';
|
|
12
12
|
/** @override */
|
|
13
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
14
|
-
const errors = super.lint(start);
|
|
13
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
14
|
+
const errors = super.lint(start, re);
|
|
15
15
|
if (this.closest('ext-link-text')) {
|
|
16
16
|
errors.push((0, lint_1.generateForSelf)(this, { start }, 'nested-link', 'internal link in an external link'));
|
|
17
17
|
}
|
package/dist/src/magicLink.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export declare abstract class MagicLinkToken extends Token {
|
|
|
17
17
|
*/
|
|
18
18
|
constructor(url?: string, doubleSlash?: boolean, config?: Parser.Config, accum?: Token[]);
|
|
19
19
|
/** @override */
|
|
20
|
-
lint(start?: number): LintError[];
|
|
20
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
21
21
|
}
|
package/dist/src/magicLink.js
CHANGED
|
@@ -18,8 +18,8 @@ class MagicLinkToken extends index_2.Token {
|
|
|
18
18
|
this.type = doubleSlash ? 'ext-link-url' : 'free-ext-link';
|
|
19
19
|
}
|
|
20
20
|
/** @override */
|
|
21
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
22
|
-
const errors = super.lint(start), source = `[,;。:!?()]+${this.type === 'ext-link-url' ? '|\\|+' : ''}`, regex = new RegExp(source, 'u'), regexGlobal = new RegExp(source, 'gu');
|
|
21
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
22
|
+
const errors = super.lint(start, re), source = `[,;。:!?()]+${this.type === 'ext-link-url' ? '|\\|+' : ''}`, regex = new RegExp(source, 'u'), regexGlobal = new RegExp(source, 'gu');
|
|
23
23
|
let rect;
|
|
24
24
|
for (const child of this.childNodes) {
|
|
25
25
|
const { type, data } = child;
|
package/dist/src/nested.d.ts
CHANGED
|
@@ -24,5 +24,5 @@ export declare abstract class NestedToken extends Token {
|
|
|
24
24
|
*/
|
|
25
25
|
constructor(wikitext: string | undefined, regex: RegExp, tags: readonly string[], config?: Parser.Config, accum?: Token[]);
|
|
26
26
|
/** @override */
|
|
27
|
-
lint(start?: number): LintError[];
|
|
27
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
28
28
|
}
|
package/dist/src/nested.js
CHANGED
|
@@ -38,10 +38,10 @@ class NestedToken extends index_2.Token {
|
|
|
38
38
|
super(wikitext, config, accum, {});
|
|
39
39
|
}
|
|
40
40
|
/** @override */
|
|
41
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
41
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
42
42
|
let rect;
|
|
43
43
|
return [
|
|
44
|
-
...super.lint(start),
|
|
44
|
+
...super.lint(start, re),
|
|
45
45
|
...this.childNodes.filter(child => {
|
|
46
46
|
if (child.type === 'ext' || child.type === 'comment') {
|
|
47
47
|
return false;
|
package/dist/src/nowiki/index.js
CHANGED
|
@@ -18,7 +18,7 @@ class NowikiToken extends base_1.NowikiBaseToken {
|
|
|
18
18
|
};
|
|
19
19
|
return [e];
|
|
20
20
|
}
|
|
21
|
-
return super.lint(start);
|
|
21
|
+
return super.lint(start, new RegExp(`<\\s*(?:\\/\\s*)${name === 'nowiki' ? '' : '?'}(${name})\\b`, 'giu'));
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.NowikiToken = NowikiToken;
|
package/dist/src/parameter.d.ts
CHANGED
package/dist/src/parameter.js
CHANGED
|
@@ -55,10 +55,10 @@ class ParameterToken extends index_2.Token {
|
|
|
55
55
|
return this.anon ? 0 : 1;
|
|
56
56
|
}
|
|
57
57
|
/** @override */
|
|
58
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
58
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
59
59
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
60
60
|
/https?:\/\/(?:\[[\da-f:.]+\]|[^[\]<>"\t\n\p{Zs}])(?:[^[\]<>"\0\t\n\p{Zs}]|\0\d+c\x7F)*$/iu;
|
|
61
|
-
const errors = super.lint(start), { firstChild } = this, link = new RegExp(`https?://${string_1.extUrlCharFirst}${string_1.extUrlChar}$`, 'iu').exec(firstChild.text())?.[0];
|
|
61
|
+
const errors = super.lint(start, re), { firstChild } = this, link = new RegExp(`https?://${string_1.extUrlCharFirst}${string_1.extUrlChar}$`, 'iu').exec(firstChild.text())?.[0];
|
|
62
62
|
if (link && new URL(link).search) {
|
|
63
63
|
const e = (0, lint_1.generateForChild)(firstChild, { start }, 'unescaped', 'unescaped query string in an anonymous parameter');
|
|
64
64
|
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>`
|
|
@@ -17,4 +18,6 @@ export declare abstract class PreToken extends Token {
|
|
|
17
18
|
abstract get parentNode(): ExtToken | undefined;
|
|
18
19
|
/** @class */
|
|
19
20
|
constructor(wikitext?: string, config?: Parser.Config, accum?: Token[]);
|
|
21
|
+
/** @override */
|
|
22
|
+
lint(start?: number): LintError[];
|
|
20
23
|
}
|
package/dist/src/pre.js
CHANGED
|
@@ -35,5 +35,9 @@ class PreToken extends index_2.Token {
|
|
|
35
35
|
getAttribute(key) {
|
|
36
36
|
return (key === 'plain') || super.getAttribute(key);
|
|
37
37
|
}
|
|
38
|
+
/** @override */
|
|
39
|
+
lint(start = this.getAbsoluteIndex()) {
|
|
40
|
+
return super.lint(start, /<\s*\/\s*(pre)\b/giu);
|
|
41
|
+
}
|
|
38
42
|
}
|
|
39
43
|
exports.PreToken = PreToken;
|
|
@@ -19,5 +19,5 @@ export declare abstract class TableToken extends TrBaseToken {
|
|
|
19
19
|
*/
|
|
20
20
|
constructor(syntax: string, attr?: string, config?: Parser.Config, accum?: Token[]);
|
|
21
21
|
/** @override */
|
|
22
|
-
lint(start?: number): LintError[];
|
|
22
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
23
23
|
}
|
package/dist/src/table/index.js
CHANGED
|
@@ -25,8 +25,8 @@ class TableToken extends trBase_1.TrBaseToken {
|
|
|
25
25
|
super(/^(?:\{\||\{\{\{\s*!\s*\}\}|\{\{\s*\(!\s*\}\})$/u, syntax, attr, config, accum, {});
|
|
26
26
|
}
|
|
27
27
|
/** @override */
|
|
28
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
29
|
-
const errors = super.lint(start);
|
|
28
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
29
|
+
const errors = super.lint(start, re);
|
|
30
30
|
if (!this.closed) {
|
|
31
31
|
errors.push((0, lint_1.generateForChild)(this.firstChild, { start }, 'unclosed-table', index_1.default.msg('unclosed $1', 'table')));
|
|
32
32
|
}
|
package/dist/src/table/td.d.ts
CHANGED
package/dist/src/table/td.js
CHANGED
|
@@ -74,8 +74,8 @@ class TdToken extends base_1.TableBaseToken {
|
|
|
74
74
|
return 0;
|
|
75
75
|
}
|
|
76
76
|
/** @override */
|
|
77
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
78
|
-
const errors = super.lint(start);
|
|
77
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
78
|
+
const errors = super.lint(start, re);
|
|
79
79
|
start += this.getRelativeIndex(this.length - 1);
|
|
80
80
|
for (const child of this.lastChild.childNodes) {
|
|
81
81
|
if (child.type === 'text') {
|
package/dist/src/table/trBase.js
CHANGED
|
@@ -7,8 +7,8 @@ const base_1 = require("./base");
|
|
|
7
7
|
/** 表格行或表格 */
|
|
8
8
|
class TrBaseToken extends base_1.TableBaseToken {
|
|
9
9
|
/** @override */
|
|
10
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
11
|
-
const errors = super.lint(start), inter = this.childNodes.find(({ type }) => type === 'table-inter');
|
|
10
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
11
|
+
const errors = super.lint(start, re), inter = this.childNodes.find(({ type }) => type === 'table-inter');
|
|
12
12
|
if (!inter) {
|
|
13
13
|
return errors;
|
|
14
14
|
}
|
|
@@ -21,5 +21,5 @@ export declare abstract class ExtToken extends TagPairToken {
|
|
|
21
21
|
*/
|
|
22
22
|
constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
|
|
23
23
|
/** @override */
|
|
24
|
-
lint(start?: number): LintError[];
|
|
24
|
+
lint(start?: number, re?: RegExp): LintError[];
|
|
25
25
|
}
|
package/dist/src/tagPair/ext.js
CHANGED
|
@@ -119,8 +119,8 @@ class ExtToken extends index_3.TagPairToken {
|
|
|
119
119
|
this.seal('closed', true);
|
|
120
120
|
}
|
|
121
121
|
/** @override */
|
|
122
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
123
|
-
const errors = super.lint(start);
|
|
122
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
123
|
+
const errors = super.lint(start, re);
|
|
124
124
|
let rect;
|
|
125
125
|
if (this.name !== 'nowiki' && this.closest('html-attrs, table-attrs')) {
|
|
126
126
|
rect = { start, ...this.getRootNode().posFromIndex(start) };
|
package/dist/src/transclude.d.ts
CHANGED
package/dist/src/transclude.js
CHANGED
|
@@ -157,8 +157,8 @@ class TranscludeToken extends index_2.Token {
|
|
|
157
157
|
return 1;
|
|
158
158
|
}
|
|
159
159
|
/** @override */
|
|
160
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
161
|
-
const errors = super.lint(start), { type, childNodes, length } = this;
|
|
160
|
+
lint(start = this.getAbsoluteIndex(), re) {
|
|
161
|
+
const errors = super.lint(start, re), { type, childNodes, length } = this;
|
|
162
162
|
let rect;
|
|
163
163
|
if (!this.isTemplate()) {
|
|
164
164
|
return errors;
|