wikilint 2.7.1 → 2.9.0
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/base.d.ts +2 -2
- package/dist/base.js +1 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +7 -2
- package/dist/lib/element.d.ts +0 -6
- package/dist/lib/element.js +2 -6
- package/dist/lib/node.d.ts +1 -1
- package/dist/lib/node.js +1 -1
- package/dist/lib/text.d.ts +0 -6
- package/dist/lib/text.js +4 -8
- package/dist/parser/braces.js +10 -1
- package/dist/parser/externalLinks.js +1 -1
- package/dist/parser/magicLinks.js +34 -17
- package/dist/parser/table.js +1 -1
- package/dist/src/arg.d.ts +0 -2
- package/dist/src/arg.js +2 -2
- package/dist/src/attribute.d.ts +0 -2
- package/dist/src/attribute.js +2 -2
- package/dist/src/attributes.d.ts +0 -2
- package/dist/src/attributes.js +1 -1
- package/dist/src/converter.js +1 -1
- package/dist/src/converterFlags.d.ts +0 -2
- package/dist/src/converterFlags.js +1 -1
- package/dist/src/converterRule.js +1 -1
- package/dist/src/extLink.d.ts +0 -2
- package/dist/src/extLink.js +2 -2
- package/dist/src/gallery.d.ts +0 -2
- package/dist/src/gallery.js +2 -2
- package/dist/src/heading.d.ts +0 -2
- package/dist/src/heading.js +3 -3
- package/dist/src/html.d.ts +0 -2
- package/dist/src/html.js +2 -2
- package/dist/src/imageParameter.d.ts +0 -2
- package/dist/src/imageParameter.js +1 -1
- package/dist/src/imagemap.d.ts +0 -2
- package/dist/src/imagemap.js +2 -2
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +29 -15
- package/dist/src/link/base.d.ts +0 -2
- package/dist/src/link/base.js +1 -1
- package/dist/src/link/file.d.ts +0 -2
- package/dist/src/link/file.js +1 -1
- package/dist/src/link/galleryImage.d.ts +0 -2
- package/dist/src/link/galleryImage.js +2 -3
- package/dist/src/link/index.d.ts +0 -2
- package/dist/src/link/index.js +1 -1
- package/dist/src/link/redirectTarget.d.ts +0 -2
- package/dist/src/link/redirectTarget.js +3 -3
- package/dist/src/magicLink.d.ts +7 -5
- package/dist/src/magicLink.js +37 -5
- package/dist/src/nested.d.ts +0 -2
- package/dist/src/nested.js +3 -3
- package/dist/src/nowiki/comment.d.ts +0 -2
- package/dist/src/nowiki/comment.js +1 -1
- package/dist/src/nowiki/index.d.ts +0 -2
- package/dist/src/nowiki/index.js +1 -1
- package/dist/src/nowiki/quote.d.ts +0 -2
- package/dist/src/nowiki/quote.js +1 -1
- package/dist/src/paramTag/index.d.ts +0 -2
- package/dist/src/paramTag/index.js +2 -2
- package/dist/src/parameter.d.ts +0 -2
- package/dist/src/parameter.js +2 -2
- package/dist/src/pre.d.ts +0 -2
- package/dist/src/pre.js +1 -1
- package/dist/src/redirect.d.ts +0 -4
- package/dist/src/redirect.js +3 -3
- package/dist/src/syntax.d.ts +0 -2
- package/dist/src/syntax.js +1 -1
- package/dist/src/table/index.d.ts +0 -2
- package/dist/src/table/index.js +1 -1
- package/dist/src/table/td.d.ts +0 -2
- package/dist/src/table/td.js +2 -2
- package/dist/src/table/trBase.d.ts +0 -2
- package/dist/src/table/trBase.js +2 -2
- package/dist/src/tagPair/ext.d.ts +0 -2
- package/dist/src/tagPair/ext.js +1 -1
- package/dist/src/tagPair/include.d.ts +0 -2
- package/dist/src/tagPair/include.js +1 -1
- package/dist/src/tagPair/index.js +2 -2
- package/dist/src/transclude.d.ts +0 -2
- package/dist/src/transclude.js +2 -2
- package/dist/util/lint.js +1 -1
- package/dist/util/string.js +1 -1
- package/i18n/zh-hans.json +1 -0
- package/i18n/zh-hant.json +1 -0
- package/package.json +4 -4
package/dist/src/table/trBase.js
CHANGED
|
@@ -7,7 +7,7 @@ const base_1 = require("./base");
|
|
|
7
7
|
const td_1 = require("./td");
|
|
8
8
|
/** 表格行或表格 */
|
|
9
9
|
class TrBaseToken extends base_1.TableBaseToken {
|
|
10
|
-
/** @
|
|
10
|
+
/** @private */
|
|
11
11
|
lint(start = this.getAbsoluteIndex(), re) {
|
|
12
12
|
const errors = super.lint(start, re), inter = this.childNodes.find(({ type }) => type === 'table-inter');
|
|
13
13
|
if (!inter) {
|
|
@@ -15,7 +15,7 @@ class TrBaseToken extends base_1.TableBaseToken {
|
|
|
15
15
|
}
|
|
16
16
|
const first = inter.childNodes.find(child => child.text().trim()), tdPattern = /^\s*(?:!|\{\{\s*![!-]?\s*\}\})/u, isArg = (0, debug_1.isToken)('arg'), isTransclude = (0, debug_1.isToken)('magic-word');
|
|
17
17
|
if (!first
|
|
18
|
-
|| tdPattern.test(
|
|
18
|
+
|| tdPattern.test(first.toString())
|
|
19
19
|
|| isArg(first) && tdPattern.test(first.default || '')) {
|
|
20
20
|
return errors;
|
|
21
21
|
}
|
|
@@ -20,6 +20,4 @@ export declare abstract class ExtToken extends TagPairToken {
|
|
|
20
20
|
* @param closed 是否封闭
|
|
21
21
|
*/
|
|
22
22
|
constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
|
|
23
|
-
/** @override */
|
|
24
|
-
lint(start?: number, re?: RegExp): LintError[];
|
|
25
23
|
}
|
package/dist/src/tagPair/ext.js
CHANGED
|
@@ -118,7 +118,7 @@ class ExtToken extends index_3.TagPairToken {
|
|
|
118
118
|
super(name, attrToken, innerToken, closed, config, accum);
|
|
119
119
|
this.seal('closed', true);
|
|
120
120
|
}
|
|
121
|
-
/** @
|
|
121
|
+
/** @private */
|
|
122
122
|
lint(start = this.getAbsoluteIndex(), re) {
|
|
123
123
|
const errors = super.lint(start, re);
|
|
124
124
|
let rect;
|
|
@@ -14,7 +14,5 @@ export declare abstract class IncludeToken extends TagPairToken {
|
|
|
14
14
|
* @param closed 是否封闭
|
|
15
15
|
*/
|
|
16
16
|
constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
|
|
17
|
-
/** @override */
|
|
18
|
-
lint(start?: number): LintError[];
|
|
19
17
|
}
|
|
20
18
|
export {};
|
|
@@ -20,7 +20,7 @@ class IncludeToken extends (0, hidden_1.hiddenToken)(index_2.TagPairToken) {
|
|
|
20
20
|
constructor(name, attr = '', inner, closed, config = index_1.default.getConfig(), accum = []) {
|
|
21
21
|
super(name, attr, inner ?? '', inner === undefined ? closed : closed ?? '', config, accum);
|
|
22
22
|
}
|
|
23
|
-
/** @
|
|
23
|
+
/** @private */
|
|
24
24
|
lint(start = this.getAbsoluteIndex()) {
|
|
25
25
|
if (this.closed) {
|
|
26
26
|
return [];
|
|
@@ -32,8 +32,8 @@ class TagPairToken extends index_2.Token {
|
|
|
32
32
|
toString() {
|
|
33
33
|
const { selfClosing, firstChild, lastChild, } = this, [opening, closing] = this.#tags;
|
|
34
34
|
return selfClosing
|
|
35
|
-
? `<${opening}${
|
|
36
|
-
: `<${opening}${
|
|
35
|
+
? `<${opening}${firstChild.toString()}/>`
|
|
36
|
+
: `<${opening}${firstChild.toString()}>${lastChild.toString()}${this.closed ? `</${closing}>` : ''}`;
|
|
37
37
|
}
|
|
38
38
|
/** @override */
|
|
39
39
|
text() {
|
package/dist/src/transclude.d.ts
CHANGED
package/dist/src/transclude.js
CHANGED
|
@@ -131,7 +131,7 @@ class TranscludeToken extends index_2.Token {
|
|
|
131
131
|
/** @private */
|
|
132
132
|
toString() {
|
|
133
133
|
return `{{${this.modifier}${this.type === 'magic-word'
|
|
134
|
-
? `${
|
|
134
|
+
? `${this.firstChild.toString()}${this.length === 1 ? '' : ':'}${this.childNodes.slice(1).map(String).join('|')}`
|
|
135
135
|
: super.toString('|')}}}`;
|
|
136
136
|
}
|
|
137
137
|
/** @override */
|
|
@@ -156,7 +156,7 @@ class TranscludeToken extends index_2.Token {
|
|
|
156
156
|
getGaps() {
|
|
157
157
|
return 1;
|
|
158
158
|
}
|
|
159
|
-
/** @
|
|
159
|
+
/** @private */
|
|
160
160
|
lint(start = this.getAbsoluteIndex(), re) {
|
|
161
161
|
const errors = super.lint(start, re), { type, childNodes, length } = this;
|
|
162
162
|
let rect;
|
package/dist/util/lint.js
CHANGED
|
@@ -13,7 +13,7 @@ const factory = (func) => (token, boundingRect, rule, msg, severity = 'error') =
|
|
|
13
13
|
message: index_1.default.msg(msg),
|
|
14
14
|
severity,
|
|
15
15
|
startIndex,
|
|
16
|
-
endIndex: startIndex +
|
|
16
|
+
endIndex: startIndex + token.toString().length,
|
|
17
17
|
startLine,
|
|
18
18
|
endLine: startLine + offsetHeight - 1,
|
|
19
19
|
startCol,
|
package/dist/util/string.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.extUrlChar = `(?:${commonExtUrlChar}|\0\\d+[c!~]\x7F)*`;
|
|
|
11
11
|
*/
|
|
12
12
|
const factory = (regex, replace) => (str) => str.replace(regex, replace);
|
|
13
13
|
/** 清理解析专用的不可见字符 */
|
|
14
|
-
exports.tidy = factory(/[\0\x7F]
|
|
14
|
+
exports.tidy = factory(/[\0\x7F]|\r$/gmu, '');
|
|
15
15
|
/** remove half-parsed comment-like tokens */
|
|
16
16
|
exports.removeComment = factory(/\0\d+c\x7F/gu, '');
|
|
17
17
|
/** escape special chars for RegExp constructor */
|
package/i18n/zh-hans.json
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"invalid conversion flag": "无效的转换标记",
|
|
29
29
|
"invalid gallery image": "无效的图库图片",
|
|
30
30
|
"invalid gallery image parameter": "无效的图库图片参数",
|
|
31
|
+
"invalid ISBN": "无效的ISBN",
|
|
31
32
|
"invalid link in <imagemap>": "无效的<imagemap>链接",
|
|
32
33
|
"invalid parameter of <$1>": "<$1>的无效参数",
|
|
33
34
|
"invalid self-closing tag": "无效自封闭标签",
|
package/i18n/zh-hant.json
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"invalid conversion flag": "無效的轉換標記",
|
|
29
29
|
"invalid gallery image": "無效的圖庫圖片",
|
|
30
30
|
"invalid gallery image parameter": "無效的圖庫圖片參數",
|
|
31
|
+
"invalid ISBN": "無效的ISBN",
|
|
31
32
|
"invalid link in <imagemap>": "無效的<imagemap>連結",
|
|
32
33
|
"invalid parameter of <$1>": "<$1>的無效參數",
|
|
33
34
|
"invalid self-closing tag": "無效自封閉標籤",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wikilint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "A Node.js linter for MediaWiki markup",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mediawiki",
|
|
@@ -27,12 +27,13 @@
|
|
|
27
27
|
"wikilint": "./bin/cli.js"
|
|
28
28
|
},
|
|
29
29
|
"main": "./dist/index.js",
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
30
31
|
"repository": {
|
|
31
32
|
"type": "git",
|
|
32
33
|
"url": "git+https://github.com/bhsd-harry/wikiparser-node.git"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {
|
|
35
|
-
"declaration": "grep -rl --include='*.d.ts' '@private' dist/ | xargs bash sed.sh -i -E '/^\\s+\\/\\*\\* @private/,+1d'; grep -rl --include='*.d.ts' '/util/' dist/ | xargs bash sed.sh -i -E '/^import .+\\/util\\//d'; node ./dist/bin/declaration.js",
|
|
36
|
+
"declaration": "grep -rl --include='*.d.ts' '@private' dist/ | xargs bash sed.sh -i -E '/^\\s+\\/\\*\\* @private/,+1d'; grep -rl --include='*.d.ts' '/util/' dist/ | xargs bash sed.sh -i -E '/^import .+\\/util\\//d'; bash sed.sh -i -E 's/abstract (lint|print)\\b/\\1/' dist/lib/node.d.ts; node ./dist/bin/declaration.js",
|
|
36
37
|
"prepublishOnly": "npm run build",
|
|
37
38
|
"build:core": "bash build.sh",
|
|
38
39
|
"build": "npm run build:core",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"lint:ts": "tsc --noEmit && eslint --cache .",
|
|
42
43
|
"lint:json": "v8r -s config/.schema.json config/*.json",
|
|
43
44
|
"lint": "npm run lint:ts && npm run lint:json",
|
|
45
|
+
"prof": "node --prof dist/test/prof.js && node --prof-process isolate-0x*-v8.log > test/prof.txt && bash sed.sh -i '0,/Bottom up/d' test/prof.txt && rm isolate-0x*-v8.log",
|
|
44
46
|
"test": "node dist/test/test.js",
|
|
45
47
|
"test:end": "pkill -x http-server",
|
|
46
48
|
"test:real": "node dist/test/real.js"
|
|
@@ -49,10 +51,8 @@
|
|
|
49
51
|
"chalk": "^4.1.2"
|
|
50
52
|
},
|
|
51
53
|
"devDependencies": {
|
|
52
|
-
"@cypress/request": "^3.0.1",
|
|
53
54
|
"@stylistic/eslint-plugin": "^1.5.4",
|
|
54
55
|
"@types/node": "^20.11.6",
|
|
55
|
-
"@types/request": "^2.48.12",
|
|
56
56
|
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
|
57
57
|
"@typescript-eslint/parser": "^7.1.0",
|
|
58
58
|
"eslint": "^8.56.0",
|