wikiparser-node 1.33.0 → 1.34.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/README.md +3 -0
- package/bundle/bundle-es8.min.js +27 -27
- package/bundle/bundle-lsp.min.js +30 -30
- package/bundle/bundle.min.js +16 -16
- package/dist/base.d.mts +1 -1
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -0
- package/dist/base.mjs +1 -0
- package/dist/bin/config.js +1 -1
- package/dist/index.js +8 -7
- package/dist/internal.d.ts +3 -0
- package/dist/lib/lintConfig.js +6 -0
- package/dist/lib/lsp.js +13 -3
- package/dist/lib/node.js +3 -11
- package/dist/lib/text.js +14 -14
- package/dist/lib/title.js +8 -10
- package/dist/src/attribute.d.ts +0 -1
- package/dist/src/attribute.js +4 -5
- package/dist/src/attributes.d.ts +0 -1
- package/dist/src/attributes.js +3 -4
- package/dist/src/converterFlags.js +5 -7
- package/dist/src/link/base.js +2 -1
- package/dist/src/link/categorytree.d.ts +1 -3
- package/dist/src/link/categorytree.js +11 -0
- package/dist/src/multiLine/imagemap.js +1 -1
- package/dist/src/nowiki/index.d.ts +1 -1
- package/dist/src/nowiki/index.js +59 -13
- package/dist/src/nowiki/list.d.ts +0 -1
- package/dist/src/nowiki/list.js +1 -0
- package/dist/src/nowiki/noinclude.d.ts +0 -1
- package/dist/src/nowiki/noinclude.js +1 -0
- package/dist/src/nowiki/quote.d.ts +0 -4
- package/dist/src/nowiki/quote.js +4 -0
- package/dist/src/parameter.js +5 -7
- package/dist/src/table/base.d.ts +0 -1
- package/dist/src/table/base.js +7 -8
- package/dist/src/table/index.d.ts +0 -1
- package/dist/src/table/index.js +1 -0
- package/dist/src/table/td.d.ts +0 -1
- package/dist/src/table/td.js +1 -0
- package/dist/src/tag/html.d.ts +0 -1
- package/dist/src/tag/html.js +1 -0
- package/dist/src/tag/tvar.d.ts +0 -1
- package/dist/src/tag/tvar.js +1 -0
- package/dist/src/tagPair/index.d.ts +4 -2
- package/dist/src/tagPair/index.js +47 -7
- package/dist/src/tagPair/translate.d.ts +1 -1
- package/dist/src/tagPair/translate.js +3 -1
- package/dist/src/transclude.js +2 -2
- package/dist/util/diff.js +6 -17
- package/extensions/dist/base.js +1 -1
- package/logo.png +0 -0
- package/package.json +3 -3
package/dist/src/table/index.js
CHANGED
package/dist/src/table/td.d.ts
CHANGED
package/dist/src/table/td.js
CHANGED
package/dist/src/tag/html.d.ts
CHANGED
package/dist/src/tag/html.js
CHANGED
|
@@ -339,6 +339,7 @@ let HtmlToken = (() => {
|
|
|
339
339
|
}
|
|
340
340
|
return result;
|
|
341
341
|
}
|
|
342
|
+
/** @private */
|
|
342
343
|
getRange() {
|
|
343
344
|
const { selfClosing, name } = this, { html: [, selfClosingTags, voidTags] } = this.getAttribute('config');
|
|
344
345
|
if (voidTags.includes(name) || selfClosing && selfClosingTags.includes(name)) {
|
package/dist/src/tag/tvar.d.ts
CHANGED
package/dist/src/tag/tvar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Token } from '../index';
|
|
2
|
-
import type { Config } from '../../base';
|
|
2
|
+
import type { Config, AST } from '../../base';
|
|
3
3
|
import type { AstNodes } from '../../internal';
|
|
4
4
|
/**
|
|
5
5
|
* Paired tags
|
|
@@ -10,13 +10,15 @@ export declare abstract class TagPairToken extends Token {
|
|
|
10
10
|
#private;
|
|
11
11
|
readonly name: string;
|
|
12
12
|
closed: boolean;
|
|
13
|
-
selfClosing: boolean;
|
|
14
13
|
abstract get type(): 'ext' | 'include' | 'translate';
|
|
15
14
|
readonly childNodes: readonly [AstNodes, AstNodes];
|
|
16
15
|
abstract get firstChild(): AstNodes;
|
|
17
16
|
abstract get lastChild(): AstNodes;
|
|
18
17
|
/** inner wikitext / 内部wikitext */
|
|
19
18
|
get innerText(): string | undefined;
|
|
19
|
+
/** whether to be self-closing / 是否自封闭 */
|
|
20
|
+
get selfClosing(): boolean;
|
|
21
|
+
set selfClosing(value: boolean);
|
|
20
22
|
/**
|
|
21
23
|
* @param name 标签名
|
|
22
24
|
* @param attr 标签属性
|
|
@@ -43,6 +43,7 @@ const noEscape_1 = require("../../mixin/noEscape");
|
|
|
43
43
|
const index_1 = require("../index");
|
|
44
44
|
/* NOT FOR BROWSER */
|
|
45
45
|
const constants_1 = require("../../util/constants");
|
|
46
|
+
const debug_1 = require("../../util/debug");
|
|
46
47
|
const fixed_1 = require("../../mixin/fixed");
|
|
47
48
|
const index_2 = __importDefault(require("../../index"));
|
|
48
49
|
/* NOT FOR BROWSER END */
|
|
@@ -67,12 +68,30 @@ let TagPairToken = (() => {
|
|
|
67
68
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
68
69
|
}
|
|
69
70
|
#tags;
|
|
71
|
+
#selfClosing;
|
|
70
72
|
closed;
|
|
71
|
-
selfClosing;
|
|
72
73
|
/** inner wikitext / 内部wikitext */
|
|
73
74
|
get innerText() {
|
|
74
|
-
return this
|
|
75
|
+
return this.#selfClosing ? undefined : this.lastChild.text();
|
|
75
76
|
}
|
|
77
|
+
/** whether to be self-closing / 是否自封闭 */
|
|
78
|
+
get selfClosing() {
|
|
79
|
+
return this.#selfClosing;
|
|
80
|
+
}
|
|
81
|
+
/* NOT FOR BROWSER */
|
|
82
|
+
set selfClosing(value) {
|
|
83
|
+
this.#selfClosing = Boolean(value);
|
|
84
|
+
if (value) {
|
|
85
|
+
const { lastChild } = this;
|
|
86
|
+
if (lastChild.type === 'text') {
|
|
87
|
+
lastChild.replaceData('');
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
lastChild.replaceChildren();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/* NOT FOR BROWSER END */
|
|
76
95
|
/**
|
|
77
96
|
* @param name 标签名
|
|
78
97
|
* @param attr 标签属性
|
|
@@ -84,14 +103,14 @@ let TagPairToken = (() => {
|
|
|
84
103
|
this.setAttribute('name', name.toLowerCase());
|
|
85
104
|
this.#tags = [name, closed || name];
|
|
86
105
|
this.closed = closed !== '';
|
|
87
|
-
this
|
|
106
|
+
this.#selfClosing = closed === undefined;
|
|
88
107
|
this.append(attr, inner);
|
|
89
108
|
const index = typeof attr === 'string' ? -1 : accum.indexOf(attr);
|
|
90
109
|
accum.splice(index === -1 ? Infinity : index, 0, this);
|
|
91
110
|
}
|
|
92
111
|
/** @private */
|
|
93
112
|
toString(skip) {
|
|
94
|
-
const {
|
|
113
|
+
const { firstChild, lastChild,
|
|
95
114
|
/* NOT FOR BROWSER */
|
|
96
115
|
nextSibling, name, closed, type, } = this, [opening, closing] = this.#tags;
|
|
97
116
|
/* NOT FOR BROWSER */
|
|
@@ -101,14 +120,14 @@ let TagPairToken = (() => {
|
|
|
101
120
|
this.closed = true;
|
|
102
121
|
}
|
|
103
122
|
/* NOT FOR BROWSER END */
|
|
104
|
-
return selfClosing
|
|
123
|
+
return this.#selfClosing
|
|
105
124
|
? `<${opening}${firstChild.toString(skip)}/>`
|
|
106
125
|
: `<${opening}${firstChild.toString(skip)}>${lastChild.toString(skip)}${this.closed ? `</${closing}>` : ''}`;
|
|
107
126
|
}
|
|
108
127
|
/** @private */
|
|
109
128
|
text() {
|
|
110
129
|
const [opening, closing] = this.#tags;
|
|
111
|
-
return this
|
|
130
|
+
return this.#selfClosing
|
|
112
131
|
? `<${opening}${this.firstChild.text()}/>`
|
|
113
132
|
: `<${opening}${super.text('>')}${this.closed ? `</${closing}>` : ''}`;
|
|
114
133
|
}
|
|
@@ -125,11 +144,32 @@ let TagPairToken = (() => {
|
|
|
125
144
|
print() {
|
|
126
145
|
PRINT: {
|
|
127
146
|
const [opening, closing] = this.#tags;
|
|
128
|
-
return super.print(this
|
|
147
|
+
return super.print(this.#selfClosing
|
|
129
148
|
? { pre: `<${opening}`, post: '/>' }
|
|
130
149
|
: { pre: `<${opening}`, sep: '>', post: this.closed ? `</${closing}>` : '' });
|
|
131
150
|
}
|
|
132
151
|
}
|
|
152
|
+
/** @private */
|
|
153
|
+
json(_, start = this.getAbsoluteIndex()) {
|
|
154
|
+
LSP: {
|
|
155
|
+
const json = super.json(undefined, start);
|
|
156
|
+
json['selfClosing'] = this.#selfClosing;
|
|
157
|
+
return json;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/* NOT FOR BROWSER */
|
|
161
|
+
/** @private */
|
|
162
|
+
afterBuild() {
|
|
163
|
+
super.afterBuild();
|
|
164
|
+
const /** @implements */ tagPairListener = (e, data) => {
|
|
165
|
+
/* istanbul ignore if */
|
|
166
|
+
if (this.#selfClosing && e.prevTarget === this.lastChild && this.lastChild.toString()) {
|
|
167
|
+
(0, debug_1.undo)(e, data);
|
|
168
|
+
throw new Error('A self-closing tag does not have inner content.');
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
this.addEventListener(['insert', 'replace', 'text'], tagPairListener);
|
|
172
|
+
}
|
|
133
173
|
};
|
|
134
174
|
return TagPairToken = _classThis;
|
|
135
175
|
})();
|
|
@@ -11,7 +11,6 @@ export declare abstract class TranslateToken extends TagPairToken implements Omi
|
|
|
11
11
|
#private;
|
|
12
12
|
name: 'translate';
|
|
13
13
|
closed: true;
|
|
14
|
-
selfClosing: false;
|
|
15
14
|
readonly childNodes: readonly [SyntaxToken, Token];
|
|
16
15
|
abstract get firstChild(): SyntaxToken;
|
|
17
16
|
abstract get lastChild(): Token;
|
|
@@ -20,6 +19,7 @@ export declare abstract class TranslateToken extends TagPairToken implements Omi
|
|
|
20
19
|
abstract get firstElementChild(): SyntaxToken;
|
|
21
20
|
abstract get lastElementChild(): Token;
|
|
22
21
|
get type(): 'translate';
|
|
22
|
+
get selfClosing(): false;
|
|
23
23
|
/**
|
|
24
24
|
* @param attr 标签属性
|
|
25
25
|
* @param inner 内部wikitext
|
|
@@ -64,6 +64,9 @@ let TranslateToken = (() => {
|
|
|
64
64
|
get type() {
|
|
65
65
|
return 'translate';
|
|
66
66
|
}
|
|
67
|
+
get selfClosing() {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
67
70
|
/**
|
|
68
71
|
* @param attr 标签属性
|
|
69
72
|
* @param inner 内部wikitext
|
|
@@ -89,7 +92,6 @@ let TranslateToken = (() => {
|
|
|
89
92
|
__runInitializers(this, _instanceExtraInitializers);
|
|
90
93
|
/* PRINT ONLY */
|
|
91
94
|
this.seal('closed', true);
|
|
92
|
-
this.seal('selfClosing', true);
|
|
93
95
|
}
|
|
94
96
|
/** @private */
|
|
95
97
|
toString(skip) {
|
package/dist/src/transclude.js
CHANGED
|
@@ -274,8 +274,8 @@ let TranscludeToken = (() => {
|
|
|
274
274
|
* 当继续bubble到`template`时,处理并删除`oldKey`和`newKey`。
|
|
275
275
|
* @implements
|
|
276
276
|
*/
|
|
277
|
-
const transcludeListener = (
|
|
278
|
-
const {
|
|
277
|
+
const transcludeListener = ({ prevTarget }, data) => {
|
|
278
|
+
const { oldKey, newKey } = data;
|
|
279
279
|
if (typeof oldKey === 'string') {
|
|
280
280
|
delete data.oldKey;
|
|
281
281
|
delete data.newKey;
|
package/dist/util/diff.js
CHANGED
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.info = exports.error = exports.
|
|
6
|
+
exports.info = exports.error = exports.diff = exports.cmd = void 0;
|
|
7
7
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const util_1 = __importDefault(require("util"));
|
|
8
9
|
const child_process_1 = require("child_process");
|
|
9
10
|
/* istanbul ignore next */
|
|
10
11
|
process.on('unhandledRejection', e => {
|
|
@@ -76,29 +77,17 @@ const diff = async (oldStr, newStr, uid) => {
|
|
|
76
77
|
await Promise.allSettled([promises_1.default.unlink(oldFile), promises_1.default.unlink(newFile)]);
|
|
77
78
|
};
|
|
78
79
|
exports.diff = diff;
|
|
79
|
-
let chalk;
|
|
80
|
-
/* istanbul ignore next */
|
|
81
|
-
const loadChalk = () => {
|
|
82
|
-
if (chalk === undefined) {
|
|
83
|
-
try {
|
|
84
|
-
chalk = require('chalk');
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
chalk = null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return chalk;
|
|
91
|
-
};
|
|
92
|
-
exports.loadChalk = loadChalk;
|
|
93
80
|
/* istanbul ignore next */
|
|
94
81
|
/** @implements */
|
|
95
82
|
const error = (msg, ...args) => {
|
|
96
|
-
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
84
|
+
console.error(util_1.default.styleText?.('red', msg) ?? msg, ...args);
|
|
97
85
|
};
|
|
98
86
|
exports.error = error;
|
|
99
87
|
/* istanbul ignore next */
|
|
100
88
|
/** @implements */
|
|
101
89
|
const info = (msg, ...args) => {
|
|
102
|
-
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
91
|
+
console.info(util_1.default.styleText?.('green', msg) ?? msg, ...args);
|
|
103
92
|
};
|
|
104
93
|
exports.info = info;
|
package/extensions/dist/base.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
var _a;
|
|
3
|
-
const version = '1.
|
|
3
|
+
const version = '1.34.0', src = (_a = document.currentScript) === null || _a === void 0 ? void 0 : _a.src, file = /\/extensions\/dist\/base\.(?:min\.)?js$/u, CDN = src && file.test(src)
|
|
4
4
|
? src.replace(file, '')
|
|
5
5
|
: `https://testingcf.jsdelivr.net/npm/wikiparser-node@${version}`;
|
|
6
6
|
const workerJS = () => {
|
package/logo.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wikiparser-node",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "A Node.js parser for MediaWiki markup with AST",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mediawiki",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"!/extensions/*-page.css",
|
|
24
24
|
"/printed/README",
|
|
25
25
|
"/errors/README",
|
|
26
|
+
"/logo.png",
|
|
26
27
|
"/config/",
|
|
27
28
|
"!/config/mediawikiwiki.json",
|
|
28
29
|
"!/config/testwiki.json",
|
|
@@ -81,13 +82,12 @@
|
|
|
81
82
|
},
|
|
82
83
|
"dependencies": {
|
|
83
84
|
"@bhsd/cm-util": "^0.1.0",
|
|
84
|
-
"@bhsd/common": "^1.0
|
|
85
|
+
"@bhsd/common": "^1.2.0",
|
|
85
86
|
"@bhsd/stylelint-util": "^0.1.0",
|
|
86
87
|
"binary-search": "^1.3.6",
|
|
87
88
|
"vscode-languageserver-types": "^3.17.5"
|
|
88
89
|
},
|
|
89
90
|
"optionalDependencies": {
|
|
90
|
-
"chalk": "^4.1.2",
|
|
91
91
|
"color-name": "^2.0.0",
|
|
92
92
|
"entities": "^7.0.0",
|
|
93
93
|
"mathoid-texvcjs": "^0.6.0",
|