wikiparser-node 1.19.0 → 1.20.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-es7.min.js +24 -31
- package/bundle/bundle-lsp.min.js +25 -98
- package/bundle/bundle.min.js +25 -32
- package/config/default.json +49 -3
- package/config/minimum.json +5 -1
- package/data/ext/math.json +660 -0
- package/dist/addon/table.js +24 -5
- package/dist/addon/transclude.js +4 -4
- package/dist/base.d.mts +1 -1
- package/dist/base.d.ts +1 -1
- package/dist/bin/config.js +26 -8
- package/dist/index.js +10 -1
- package/dist/internal.d.ts +2 -0
- package/dist/lib/document.d.ts +1 -0
- package/dist/lib/document.js +10 -1
- package/dist/lib/element.js +15 -21
- package/dist/lib/lsp.js +88 -58
- package/dist/lib/node.js +21 -24
- package/dist/lib/text.js +3 -4
- package/dist/lib/title.js +2 -1
- package/dist/mixin/attributesParent.js +1 -1
- package/dist/mixin/fixed.d.ts +1 -2
- package/dist/mixin/fixed.js +2 -3
- package/dist/mixin/gapped.d.ts +4 -0
- package/dist/mixin/gapped.js +24 -0
- package/dist/mixin/hidden.js +1 -1
- package/dist/mixin/multiLine.d.ts +4 -0
- package/dist/mixin/multiLine.js +33 -0
- package/dist/mixin/noEscape.js +1 -1
- package/dist/mixin/padded.d.ts +5 -0
- package/dist/mixin/padded.js +24 -0
- package/dist/mixin/singleLine.js +1 -1
- package/dist/mixin/sol.js +1 -1
- package/dist/mixin/syntax.js +3 -3
- package/dist/parser/braces.js +8 -12
- package/dist/parser/commentAndExt.js +18 -2
- package/dist/parser/magicLinks.js +2 -2
- package/dist/parser/selector.js +5 -2
- package/dist/src/arg.js +10 -13
- package/dist/src/atom.js +2 -7
- package/dist/src/attribute.js +6 -6
- package/dist/src/attributes.js +8 -12
- package/dist/src/commented.d.ts +26 -0
- package/dist/src/commented.js +52 -0
- package/dist/src/converter.js +3 -6
- package/dist/src/converterFlags.js +266 -223
- package/dist/src/converterRule.d.ts +2 -2
- package/dist/src/converterRule.js +2 -2
- package/dist/src/extLink.d.ts +2 -3
- package/dist/src/extLink.js +222 -175
- package/dist/src/gallery.d.ts +4 -5
- package/dist/src/gallery.js +177 -144
- package/dist/src/heading.js +11 -11
- package/dist/src/hidden.js +2 -7
- package/dist/src/imageParameter.d.ts +2 -2
- package/dist/src/imageParameter.js +6 -5
- package/dist/src/imagemap.d.ts +2 -2
- package/dist/src/imagemap.js +155 -123
- package/dist/src/imagemapLink.d.ts +2 -2
- package/dist/src/index.js +44 -20
- package/dist/src/link/base.d.ts +2 -3
- package/dist/src/link/base.js +13 -15
- package/dist/src/link/file.d.ts +2 -3
- package/dist/src/link/file.js +3 -3
- package/dist/src/link/galleryImage.d.ts +2 -3
- package/dist/src/link/galleryImage.js +7 -13
- package/dist/src/magicLink.js +7 -9
- package/dist/src/nested.d.ts +2 -2
- package/dist/src/nested.js +4 -7
- package/dist/src/nowiki/comment.js +2 -5
- package/dist/src/nowiki/doubleUnderscore.js +2 -5
- package/dist/src/nowiki/index.d.ts +2 -2
- package/dist/src/nowiki/index.js +2 -1
- package/dist/src/onlyinclude.js +6 -13
- package/dist/src/paramTag/index.d.ts +2 -2
- package/dist/src/paramTag/index.js +102 -66
- package/dist/src/parameter.d.ts +4 -5
- package/dist/src/parameter.js +13 -13
- package/dist/src/pre.d.ts +4 -5
- package/dist/src/pre.js +8 -17
- package/dist/src/syntax.d.ts +1 -1
- package/dist/src/syntax.js +2 -7
- package/dist/src/table/base.d.ts +2 -2
- package/dist/src/table/base.js +8 -8
- package/dist/src/table/index.js +1 -1
- package/dist/src/table/td.d.ts +3 -3
- package/dist/src/table/td.js +9 -9
- package/dist/src/table/tr.d.ts +2 -2
- package/dist/src/tagPair/ext.js +35 -30
- package/dist/src/tagPair/index.d.ts +1 -1
- package/dist/src/tagPair/index.js +2 -5
- package/dist/src/tagPair/translate.d.ts +38 -0
- package/dist/src/tagPair/translate.js +129 -0
- package/dist/src/transclude.js +5 -6
- package/dist/util/html.js +16 -1
- package/dist/util/lint.js +17 -30
- package/dist/util/sharable.js +29 -1
- package/dist/util/sharable.mjs +31 -3
- package/dist/util/string.js +14 -1
- package/extensions/dist/base.js +1 -1
- package/extensions/dist/lsp.js +13 -2
- package/package.json +4 -3
- package/extensions/es7/base.js +0 -320
- package/extensions/es7/lint.js +0 -97
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TranslateToken = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
const index_2 = require("./index");
|
|
6
|
+
const syntax_1 = require("../syntax");
|
|
7
|
+
const noinclude_1 = require("../nowiki/noinclude");
|
|
8
|
+
/* NOT FOR BROWSER */
|
|
9
|
+
const debug_1 = require("../../util/debug");
|
|
10
|
+
const constants_1 = require("../../util/constants");
|
|
11
|
+
const string_1 = require("../../util/string");
|
|
12
|
+
/* NOT FOR BROWSER END */
|
|
13
|
+
/**
|
|
14
|
+
* `<translate>`
|
|
15
|
+
* @classdesc `{childNodes: [SyntaxToken, Token]}`
|
|
16
|
+
*/
|
|
17
|
+
class TranslateToken extends index_2.TagPairToken {
|
|
18
|
+
/* NOT FOR BROWSER END */
|
|
19
|
+
get type() {
|
|
20
|
+
return 'translate';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @param attr 标签属性
|
|
24
|
+
* @param inner 内部wikitext
|
|
25
|
+
*/
|
|
26
|
+
constructor(attr, inner, config, accum = []) {
|
|
27
|
+
const attrToken = new syntax_1.SyntaxToken(attr, /^(?: nowrap)?$/u, 'translate-attr', config, accum, { AstText: ':' });
|
|
28
|
+
inner = inner?.replace(/(<tvar\|[^>]+>)([\s\S]*?)(<\/>)/gu, (_, p1, p2, p3) => {
|
|
29
|
+
// @ts-expect-error abstract class
|
|
30
|
+
new noinclude_1.NoincludeToken(p1, config, accum);
|
|
31
|
+
// @ts-expect-error abstract class
|
|
32
|
+
new noinclude_1.NoincludeToken(p3, config, accum);
|
|
33
|
+
return `\0${accum.length - 1}n\x7F${p2}\0${accum.length}n\x7F`;
|
|
34
|
+
}).replace(/(<tvar\s+name\s*=(?:\s*(?:(["'])[\s\S]*?\2|[^"'\s>]+))?\s*>)([\s\S]*?)(<\/tvar\s*>)/giu, (_, p1, __, p3, p4) => {
|
|
35
|
+
// @ts-expect-error abstract class
|
|
36
|
+
new noinclude_1.NoincludeToken(p1, config, accum);
|
|
37
|
+
// @ts-expect-error abstract class
|
|
38
|
+
new noinclude_1.NoincludeToken(p4, config, accum);
|
|
39
|
+
return `\0${accum.length - 1}n\x7F${p3}\0${accum.length}n\x7F`;
|
|
40
|
+
});
|
|
41
|
+
const innerToken = new index_1.Token(inner, config, accum);
|
|
42
|
+
innerToken.type = 'translate-inner';
|
|
43
|
+
super('translate', attrToken, innerToken, 'translate', config, accum);
|
|
44
|
+
/* PRINT ONLY */
|
|
45
|
+
this.seal('closed', true);
|
|
46
|
+
this.seal('selfClosing', true);
|
|
47
|
+
}
|
|
48
|
+
/** @private */
|
|
49
|
+
toString(skip) {
|
|
50
|
+
return skip ? this.lastChild.toString(true) : super.toString();
|
|
51
|
+
}
|
|
52
|
+
/** @private */
|
|
53
|
+
text() {
|
|
54
|
+
return this.lastChild.text();
|
|
55
|
+
}
|
|
56
|
+
/* PRINT ONLY */
|
|
57
|
+
/** 是否有nowrap属性 */
|
|
58
|
+
#isNowrap() {
|
|
59
|
+
return this.firstChild.toString() === ' nowrap';
|
|
60
|
+
}
|
|
61
|
+
/** @private */
|
|
62
|
+
print() {
|
|
63
|
+
return `<span class="wpb-ext"><translate${this.#isNowrap()
|
|
64
|
+
? '<span class="wpb-ext-attrs"> <span class="wpb-ext-attr">'
|
|
65
|
+
+ '<span class="wpb-attr-key">nowrap</span>'
|
|
66
|
+
+ '</span></span>'
|
|
67
|
+
: ''}>${this.lastChild.print({ class: 'ext-inner' })}</translate></span>`;
|
|
68
|
+
}
|
|
69
|
+
/* PRINT ONLY END */
|
|
70
|
+
/* NOT FOR BROWSER */
|
|
71
|
+
/**
|
|
72
|
+
* 设置nowrap属性
|
|
73
|
+
* @param nowrap 是否nowrap
|
|
74
|
+
*/
|
|
75
|
+
#setNowrap(nowrap) {
|
|
76
|
+
this.firstChild.setText(nowrap ? ' nowrap' : '');
|
|
77
|
+
}
|
|
78
|
+
/** @implements */
|
|
79
|
+
getAttr(key) {
|
|
80
|
+
return (0, string_1.trimLc)(key) === 'nowrap' && this.#isNowrap() || undefined;
|
|
81
|
+
}
|
|
82
|
+
/** @implements */
|
|
83
|
+
hasAttr(key) {
|
|
84
|
+
return (0, string_1.trimLc)(key) === 'nowrap' && this.#isNowrap();
|
|
85
|
+
}
|
|
86
|
+
/** @implements */
|
|
87
|
+
setAttr(keyOrProp, value) {
|
|
88
|
+
if (typeof keyOrProp === 'object') {
|
|
89
|
+
for (const [key, val] of Object.entries(keyOrProp)) {
|
|
90
|
+
this.setAttr(key, val);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if ((0, string_1.trimLc)(keyOrProp) === 'nowrap') {
|
|
94
|
+
this.#setNowrap(value);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** @implements */
|
|
98
|
+
removeAttr(key) {
|
|
99
|
+
if ((0, string_1.trimLc)(key) === 'nowrap') {
|
|
100
|
+
this.firstChild.replaceChildren();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** @implements */
|
|
104
|
+
toggleAttr(key, force) {
|
|
105
|
+
if ((0, string_1.trimLc)(key) === 'nowrap') {
|
|
106
|
+
this.#setNowrap(force ?? !this.#isNowrap());
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
cloneNode() {
|
|
110
|
+
const inner = this.lastChild.cloneNode(), config = this.getAttribute('config'), attr = this.firstChild.toString() || undefined;
|
|
111
|
+
return debug_1.Shadow.run(() => {
|
|
112
|
+
// @ts-expect-error abstract class
|
|
113
|
+
const token = new TranslateToken(attr, undefined, config);
|
|
114
|
+
token.lastChild.safeReplaceWith(inner);
|
|
115
|
+
return token;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/** @private */
|
|
119
|
+
toHtmlInternal(opt) {
|
|
120
|
+
for (const { innerText, nextSibling } of this.querySelectorAll('comment')) {
|
|
121
|
+
if (nextSibling?.type === 'text' && /^T:[^_/\n<>~]+$/u.test(innerText) && /^[\n ]/u.test(nextSibling.data)) {
|
|
122
|
+
nextSibling.deleteData(0, 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return this.lastChild.toHtmlInternal(opt);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.TranslateToken = TranslateToken;
|
|
129
|
+
constants_1.classes['TranslateToken'] = __filename;
|
package/dist/src/transclude.js
CHANGED
|
@@ -43,6 +43,7 @@ const lint_1 = require("../util/lint");
|
|
|
43
43
|
const debug_1 = require("../util/debug");
|
|
44
44
|
const constants_1 = require("../util/constants");
|
|
45
45
|
const rect_1 = require("../lib/rect");
|
|
46
|
+
const gapped_1 = require("../mixin/gapped");
|
|
46
47
|
const index_1 = require("./index");
|
|
47
48
|
const parameter_1 = require("./parameter");
|
|
48
49
|
const atom_1 = require("./atom");
|
|
@@ -58,7 +59,7 @@ const basicMagicWords = new Map([['=', '='], ['!', '|']]);
|
|
|
58
59
|
* @classdesc `{childNodes: [AtomToken|SyntaxToken, ...AtomToken[], ...ParameterToken[]]}`
|
|
59
60
|
*/
|
|
60
61
|
let TranscludeToken = (() => {
|
|
61
|
-
let _classDecorators = [noEscape_1.noEscape];
|
|
62
|
+
let _classDecorators = [noEscape_1.noEscape, (0, gapped_1.gapped)()];
|
|
62
63
|
let _classDescriptor;
|
|
63
64
|
let _classExtraInitializers = [];
|
|
64
65
|
let _classThis;
|
|
@@ -192,7 +193,9 @@ let TranscludeToken = (() => {
|
|
|
192
193
|
// @ts-expect-error abstract class
|
|
193
194
|
this.insertAt(new parameter_1.ParameterToken(...part, config, accum));
|
|
194
195
|
}
|
|
196
|
+
/* PRINT ONLY */
|
|
195
197
|
this.seal('modifier');
|
|
198
|
+
/* PRINT ONLY END */
|
|
196
199
|
/* NOT FOR BROWSER */
|
|
197
200
|
this.protectChildren(0);
|
|
198
201
|
}
|
|
@@ -328,10 +331,6 @@ let TranscludeToken = (() => {
|
|
|
328
331
|
}
|
|
329
332
|
}
|
|
330
333
|
/** @private */
|
|
331
|
-
getGaps() {
|
|
332
|
-
return 1;
|
|
333
|
-
}
|
|
334
|
-
/** @private */
|
|
335
334
|
lint(start = this.getAbsoluteIndex(), re) {
|
|
336
335
|
const errors = super.lint(start, re);
|
|
337
336
|
if (!this.isTemplate()) {
|
|
@@ -553,7 +552,7 @@ let TranscludeToken = (() => {
|
|
|
553
552
|
if (token.length > 1) {
|
|
554
553
|
token.removeAt(1);
|
|
555
554
|
}
|
|
556
|
-
token.
|
|
555
|
+
token.safeAppend(cloned);
|
|
557
556
|
return token;
|
|
558
557
|
});
|
|
559
558
|
}
|
package/dist/util/html.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* NOT FOR BROWSER */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.html = exports.getCommon = void 0;
|
|
4
|
+
exports.cloneNode = exports.html = exports.getCommon = void 0;
|
|
5
|
+
const debug_1 = require("./debug");
|
|
5
6
|
/* NOT FOR BROWSER END */
|
|
6
7
|
/**
|
|
7
8
|
* get common prefix length
|
|
@@ -131,3 +132,17 @@ const html = (childNodes, separator = '', opt) => {
|
|
|
131
132
|
return results.join(separator);
|
|
132
133
|
};
|
|
133
134
|
exports.html = html;
|
|
135
|
+
/**
|
|
136
|
+
* basic function of `cloneNode`
|
|
137
|
+
* @param token token to clone
|
|
138
|
+
* @param f empty token constructor
|
|
139
|
+
*/
|
|
140
|
+
const cloneNode = (token, f) => {
|
|
141
|
+
const cloned = token.cloneChildNodes();
|
|
142
|
+
return debug_1.Shadow.run(() => {
|
|
143
|
+
const newToken = f();
|
|
144
|
+
newToken.safeAppend(cloned);
|
|
145
|
+
return newToken;
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
exports.cloneNode = cloneNode;
|
package/dist/util/lint.js
CHANGED
|
@@ -3,7 +3,7 @@ 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.
|
|
6
|
+
exports.provideValues = exports.cache = exports.generateForSelf = exports.generateForChild = exports.getEndPos = void 0;
|
|
7
7
|
const debug_1 = require("./debug");
|
|
8
8
|
const rect_1 = require("../lib/rect");
|
|
9
9
|
const index_1 = __importDefault(require("../index"));
|
|
@@ -65,34 +65,21 @@ const cache = (store, compute, update) => {
|
|
|
65
65
|
return result;
|
|
66
66
|
};
|
|
67
67
|
exports.cache = cache;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
/**
|
|
69
|
+
* 获取HTML属性值可选列表
|
|
70
|
+
* @param tag 标签名
|
|
71
|
+
* @param attribute 属性名
|
|
72
|
+
*/
|
|
73
|
+
const provideValues = (tag, attribute) => {
|
|
74
|
+
if (tag === 'ol' && attribute === 'type') {
|
|
75
|
+
return ['1', 'a', 'A', 'i', 'I'];
|
|
72
76
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
* 获取HTML属性值可选列表
|
|
76
|
-
* @param tag 标签名
|
|
77
|
-
* @param attribute 属性名
|
|
78
|
-
*/
|
|
79
|
-
const provideValues = (tag, attribute) => {
|
|
80
|
-
if (tag === 'ol' && attribute === 'type') {
|
|
81
|
-
return ['1', 'a', 'A', 'i', 'I'];
|
|
82
|
-
}
|
|
83
|
-
else if (tag === 'th' && attribute === 'scope') {
|
|
84
|
-
return ['row', 'col', 'rowgroup', 'colgroup'];
|
|
85
|
-
}
|
|
86
|
-
else if (attribute === 'dir') {
|
|
87
|
-
return ['ltr', 'rtl', 'auto'];
|
|
88
|
-
}
|
|
89
|
-
return attribute === 'aria-hidden' ? ['true', 'false'] : [];
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
/** @implements */
|
|
93
|
-
provideValues(tag, attribute) {
|
|
94
|
-
return provideValues(tag, attribute).map(value => ({ name: value }));
|
|
95
|
-
},
|
|
96
|
-
};
|
|
77
|
+
else if (tag === 'th' && attribute === 'scope') {
|
|
78
|
+
return ['row', 'col', 'rowgroup', 'colgroup'];
|
|
97
79
|
}
|
|
98
|
-
|
|
80
|
+
else if (attribute === 'dir') {
|
|
81
|
+
return ['ltr', 'rtl', 'auto'];
|
|
82
|
+
}
|
|
83
|
+
return attribute === 'aria-hidden' ? ['true', 'false'] : [];
|
|
84
|
+
};
|
|
85
|
+
exports.provideValues = provideValues;
|
package/dist/util/sharable.js
CHANGED
|
@@ -2,7 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.obsoleteAttrs = exports.extAttrs = exports.htmlAttrs = exports.commonHtmlAttrs = void 0;
|
|
4
4
|
/* eslint-disable unicorn/no-unreadable-iife */
|
|
5
|
-
const blockAttrs = new Set(['align']), citeAttrs = new Set(['cite']), citeAndAttrs = new Set(['cite', 'datetime']), widthAttrs = new Set(['width']), obsoleteTdAttrs = new Set(['axis', 'align', 'bgcolor', 'height', 'width', 'valign']), tdAttrs = new Set([...obsoleteTdAttrs, 'abbr', 'headers', 'scope', 'rowspan', 'colspan']), typeAttrs = new Set(['type']), obsoleteTableAttrs = new Set(['summary', 'align', 'bgcolor', 'cellpadding', 'cellspacing', 'frame', 'rules', 'width']), brAttrs = new Set(['clear']), trAttrs = new Set(['bgcolor', 'align', 'valign']),
|
|
5
|
+
const blockAttrs = new Set(['align']), citeAttrs = new Set(['cite']), citeAndAttrs = new Set(['cite', 'datetime']), widthAttrs = new Set(['width']), obsoleteTdAttrs = new Set(['axis', 'align', 'bgcolor', 'height', 'width', 'valign']), tdAttrs = new Set([...obsoleteTdAttrs, 'abbr', 'headers', 'scope', 'rowspan', 'colspan']), typeAttrs = new Set(['type']), obsoleteTableAttrs = new Set(['summary', 'align', 'bgcolor', 'cellpadding', 'cellspacing', 'frame', 'rules', 'width']), brAttrs = new Set(['clear']), trAttrs = new Set(['bgcolor', 'align', 'valign']), chemAttrs = new Set(['qid', 'forcemathmode', 'type', 'display']), syntaxHighlightAttrs = new Set([
|
|
6
|
+
'enclose',
|
|
7
|
+
'inline',
|
|
8
|
+
'lang',
|
|
9
|
+
'line',
|
|
10
|
+
'linelinks',
|
|
11
|
+
'style',
|
|
12
|
+
'class',
|
|
13
|
+
'id',
|
|
14
|
+
'dir',
|
|
15
|
+
'copy',
|
|
16
|
+
'highlight',
|
|
17
|
+
'start',
|
|
18
|
+
]), empty = new Set();
|
|
6
19
|
exports.commonHtmlAttrs = new Set([
|
|
7
20
|
'id',
|
|
8
21
|
'class',
|
|
@@ -63,6 +76,9 @@ exports.commonHtmlAttrs = new Set([
|
|
|
63
76
|
poem: blockAttrs,
|
|
64
77
|
categorytree: blockAttrs,
|
|
65
78
|
combooption: blockAttrs,
|
|
79
|
+
math: empty,
|
|
80
|
+
chem: empty,
|
|
81
|
+
ce: empty,
|
|
66
82
|
}))(), exports.extAttrs = (() => ({
|
|
67
83
|
gallery: new Set(['mode', 'showfilename', 'caption', 'perrow', 'widths', 'heights', 'showthumbnails']),
|
|
68
84
|
poem: new Set(['compact']),
|
|
@@ -142,6 +158,18 @@ exports.commonHtmlAttrs = new Set([
|
|
|
142
158
|
]),
|
|
143
159
|
tabs: new Set(['plain', 'class', 'container', 'id', 'title', 'style']),
|
|
144
160
|
combobox: new Set(['placeholder', 'value', 'id', 'class', 'text', 'dropdown', 'style']),
|
|
161
|
+
math: new Set([...chemAttrs, 'chem']),
|
|
162
|
+
chem: chemAttrs,
|
|
163
|
+
ce: chemAttrs,
|
|
164
|
+
hiero: empty,
|
|
165
|
+
phonos: new Set(['ipa', 'class', 'text', 'lang', 'wikibase', 'file']),
|
|
166
|
+
section: new Set(['begin', 'end']),
|
|
167
|
+
source: syntaxHighlightAttrs,
|
|
168
|
+
syntaxhighlight: syntaxHighlightAttrs,
|
|
169
|
+
templatedata: empty,
|
|
170
|
+
timeline: new Set(['method', 'font']),
|
|
171
|
+
quiz: new Set(['display', 'shuffleanswers', 'points', 'shuffle', 'case']),
|
|
172
|
+
languages: empty,
|
|
145
173
|
}))(), exports.obsoleteAttrs = (() => ({
|
|
146
174
|
table: obsoleteTableAttrs,
|
|
147
175
|
td: new Set([...obsoleteTdAttrs, 'scope']),
|
package/dist/util/sharable.mjs
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
const blockAttrs = /* @__PURE__ */ new Set(["align"]), citeAttrs = /* @__PURE__ */ new Set(["cite"]), citeAndAttrs = /* @__PURE__ */ new Set(["cite", "datetime"]), widthAttrs = /* @__PURE__ */ new Set(["width"]), obsoleteTdAttrs = /* @__PURE__ */ new Set(["axis", "align", "bgcolor", "height", "width", "valign"]), tdAttrs = /* @__PURE__ */ new Set([...obsoleteTdAttrs, "abbr", "headers", "scope", "rowspan", "colspan"]), typeAttrs = /* @__PURE__ */ new Set(["type"]), obsoleteTableAttrs = /* @__PURE__ */ new Set(
|
|
2
2
|
["summary", "align", "bgcolor", "cellpadding", "cellspacing", "frame", "rules", "width"]
|
|
3
|
-
), brAttrs = /* @__PURE__ */ new Set(["clear"]), trAttrs = /* @__PURE__ */ new Set(["bgcolor", "align", "valign"]),
|
|
3
|
+
), brAttrs = /* @__PURE__ */ new Set(["clear"]), trAttrs = /* @__PURE__ */ new Set(["bgcolor", "align", "valign"]), chemAttrs = /* @__PURE__ */ new Set(["qid", "forcemathmode", "type", "display"]), syntaxHighlightAttrs = /* @__PURE__ */ new Set([
|
|
4
|
+
"enclose",
|
|
5
|
+
"inline",
|
|
6
|
+
"lang",
|
|
7
|
+
"line",
|
|
8
|
+
"linelinks",
|
|
9
|
+
"style",
|
|
10
|
+
"class",
|
|
11
|
+
"id",
|
|
12
|
+
"dir",
|
|
13
|
+
"copy",
|
|
14
|
+
"highlight",
|
|
15
|
+
"start"
|
|
16
|
+
]), empty = /* @__PURE__ */ new Set();
|
|
4
17
|
const commonHtmlAttrs = /* @__PURE__ */ new Set([
|
|
5
18
|
"id",
|
|
6
19
|
"class",
|
|
@@ -60,7 +73,10 @@ const commonHtmlAttrs = /* @__PURE__ */ new Set([
|
|
|
60
73
|
gallery: typeAttrs,
|
|
61
74
|
poem: blockAttrs,
|
|
62
75
|
categorytree: blockAttrs,
|
|
63
|
-
combooption: blockAttrs
|
|
76
|
+
combooption: blockAttrs,
|
|
77
|
+
math: empty,
|
|
78
|
+
chem: empty,
|
|
79
|
+
ce: empty
|
|
64
80
|
}))(), extAttrs = /* @__PURE__ */ (() => ({
|
|
65
81
|
gallery: /* @__PURE__ */ new Set(["mode", "showfilename", "caption", "perrow", "widths", "heights", "showthumbnails"]),
|
|
66
82
|
poem: /* @__PURE__ */ new Set(["compact"]),
|
|
@@ -139,7 +155,19 @@ const commonHtmlAttrs = /* @__PURE__ */ new Set([
|
|
|
139
155
|
"title"
|
|
140
156
|
]),
|
|
141
157
|
tabs: /* @__PURE__ */ new Set(["plain", "class", "container", "id", "title", "style"]),
|
|
142
|
-
combobox: /* @__PURE__ */ new Set(["placeholder", "value", "id", "class", "text", "dropdown", "style"])
|
|
158
|
+
combobox: /* @__PURE__ */ new Set(["placeholder", "value", "id", "class", "text", "dropdown", "style"]),
|
|
159
|
+
math: /* @__PURE__ */ new Set([...chemAttrs, "chem"]),
|
|
160
|
+
chem: chemAttrs,
|
|
161
|
+
ce: chemAttrs,
|
|
162
|
+
hiero: empty,
|
|
163
|
+
phonos: /* @__PURE__ */ new Set(["ipa", "class", "text", "lang", "wikibase", "file"]),
|
|
164
|
+
section: /* @__PURE__ */ new Set(["begin", "end"]),
|
|
165
|
+
source: syntaxHighlightAttrs,
|
|
166
|
+
syntaxhighlight: syntaxHighlightAttrs,
|
|
167
|
+
templatedata: empty,
|
|
168
|
+
timeline: /* @__PURE__ */ new Set(["method", "font"]),
|
|
169
|
+
quiz: /* @__PURE__ */ new Set(["display", "shuffleanswers", "points", "shuffle", "case"]),
|
|
170
|
+
languages: empty
|
|
143
171
|
}))(), obsoleteAttrs = /* @__PURE__ */ (() => ({
|
|
144
172
|
table: obsoleteTableAttrs,
|
|
145
173
|
td: /* @__PURE__ */ new Set([...obsoleteTdAttrs, "scope"]),
|
package/dist/util/string.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeCommentLine = exports.newline = exports.sanitizeAlt = exports.sanitizeId = exports.sanitizeAttr = exports.sanitize = exports.normalizeSpace = exports.encode = exports.print = exports.escape = exports.noWrap = exports.decodeNumber = exports.decodeHtml = exports.decodeHtmlBasic = exports.text = exports.escapeRegExp = exports.removeComment = exports.tidy = exports.extUrlChar = exports.extUrlCharFirst = exports.zs = exports.rawurldecode = void 0;
|
|
3
|
+
exports.removeCommentLine = exports.newline = exports.sanitizeAlt = exports.sanitizeId = exports.sanitizeAttr = exports.sanitize = exports.normalizeSpace = exports.encode = exports.print = exports.escape = exports.noWrap = exports.decodeNumber = exports.decodeHtml = exports.decodeHtmlBasic = exports.text = exports.escapeRegExp = exports.removeComment = exports.tidy = exports.restore = exports.trimLc = exports.extUrlChar = exports.extUrlCharFirst = exports.zs = exports.rawurldecode = void 0;
|
|
4
4
|
var common_1 = require("@bhsd/common");
|
|
5
5
|
Object.defineProperty(exports, "rawurldecode", { enumerable: true, get: function () { return common_1.rawurldecode; } });
|
|
6
6
|
exports.zs = String.raw ` \xA0\u1680\u2000-\u200A\u202F\u205F\u3000`;
|
|
7
7
|
const commonExtUrlChar = String.raw `[^[\]<>"\0-\x1F\x7F${exports.zs}\uFFFD]`;
|
|
8
8
|
exports.extUrlCharFirst = String.raw `(?:\[[\da-f:.]+\]|${commonExtUrlChar})`;
|
|
9
9
|
exports.extUrlChar = String.raw `(?:${commonExtUrlChar}|\0\d+[cn!~]\x7F)*`;
|
|
10
|
+
/**
|
|
11
|
+
* trim and toLowerCase
|
|
12
|
+
* @param s 字符串
|
|
13
|
+
*/
|
|
14
|
+
const trimLc = (s) => s.trim().toLowerCase();
|
|
15
|
+
exports.trimLc = trimLc;
|
|
16
|
+
/**
|
|
17
|
+
* 恢复原始字符串
|
|
18
|
+
* @param s 更改后的字符串
|
|
19
|
+
* @param stack 原始字符串片段
|
|
20
|
+
*/
|
|
21
|
+
const restore = (s, stack) => s.replace(/\0(\d+)\x7F/gu, (_, p1) => stack[p1]);
|
|
22
|
+
exports.restore = restore;
|
|
10
23
|
/**
|
|
11
24
|
* 生成正则替换函数
|
|
12
25
|
* @param regex 正则表达式
|
package/extensions/dist/base.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
var _a;
|
|
3
|
-
const version = '1.
|
|
3
|
+
const version = '1.20.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/extensions/dist/lsp.js
CHANGED
|
@@ -10,14 +10,17 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _LanguageService_id, _LanguageService_include;
|
|
13
|
+
var _LanguageService_instances, _LanguageService_id, _LanguageService_include, _LanguageService_hasData, _LanguageService_loadData;
|
|
14
|
+
let data;
|
|
14
15
|
class LanguageService {
|
|
15
16
|
get include() {
|
|
16
17
|
return __classPrivateFieldGet(this, _LanguageService_include, "f");
|
|
17
18
|
}
|
|
18
19
|
constructor(include = true) {
|
|
20
|
+
_LanguageService_instances.add(this);
|
|
19
21
|
_LanguageService_id.set(this, void 0);
|
|
20
22
|
_LanguageService_include.set(this, void 0);
|
|
23
|
+
_LanguageService_hasData.set(this, false);
|
|
21
24
|
__classPrivateFieldSet(this, _LanguageService_id, wikiparse.id++, "f");
|
|
22
25
|
__classPrivateFieldSet(this, _LanguageService_include, include, "f");
|
|
23
26
|
}
|
|
@@ -55,9 +58,11 @@ class LanguageService {
|
|
|
55
58
|
return wikiparse.provide('diagnostics', __classPrivateFieldGet(this, _LanguageService_id, "f") + 0.9, wikitext, __classPrivateFieldGet(this, _LanguageService_include, "f"), warning);
|
|
56
59
|
}
|
|
57
60
|
provideHover(text, position) {
|
|
61
|
+
void __classPrivateFieldGet(this, _LanguageService_instances, "m", _LanguageService_loadData).call(this);
|
|
58
62
|
return wikiparse.provide('hover', __classPrivateFieldGet(this, _LanguageService_id, "f") + 0.05, text, __classPrivateFieldGet(this, _LanguageService_include, "f"), position);
|
|
59
63
|
}
|
|
60
64
|
provideSignatureHelp(text, position) {
|
|
65
|
+
void __classPrivateFieldGet(this, _LanguageService_instances, "m", _LanguageService_loadData).call(this);
|
|
61
66
|
return wikiparse.provide('signatureHelp', __classPrivateFieldGet(this, _LanguageService_id, "f") + 0.15, text, __classPrivateFieldGet(this, _LanguageService_include, "f"), position);
|
|
62
67
|
}
|
|
63
68
|
provideInlayHints(text) {
|
|
@@ -67,6 +72,12 @@ class LanguageService {
|
|
|
67
72
|
return wikiparse.provide('findStyleTokens', __classPrivateFieldGet(this, _LanguageService_id, "f") + 0.35);
|
|
68
73
|
}
|
|
69
74
|
}
|
|
70
|
-
_LanguageService_id = new WeakMap(), _LanguageService_include = new WeakMap()
|
|
75
|
+
_LanguageService_id = new WeakMap(), _LanguageService_include = new WeakMap(), _LanguageService_hasData = new WeakMap(), _LanguageService_instances = new WeakSet(), _LanguageService_loadData = async function _LanguageService_loadData() {
|
|
76
|
+
if (!__classPrivateFieldGet(this, _LanguageService_hasData, "f")) {
|
|
77
|
+
__classPrivateFieldSet(this, _LanguageService_hasData, true, "f");
|
|
78
|
+
data !== null && data !== void 0 ? data : (data = (async () => (await fetch(`${wikiparse.CDN}/data/signatures.json`)).json())());
|
|
79
|
+
wikiparse.provide('data', __classPrivateFieldGet(this, _LanguageService_id, "f"), await data, __classPrivateFieldGet(this, _LanguageService_include, "f"));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
71
82
|
wikiparse.LanguageService = LanguageService;
|
|
72
83
|
})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wikiparser-node",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "A Node.js parser for MediaWiki markup with AST",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mediawiki",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"/printed/README",
|
|
28
28
|
"/errors/README",
|
|
29
29
|
"/config/",
|
|
30
|
+
"!/config/mediawikiwiki.json",
|
|
30
31
|
"/data/",
|
|
31
32
|
"/i18n/",
|
|
32
33
|
"/coverage/badge.svg",
|
|
@@ -77,7 +78,7 @@
|
|
|
77
78
|
]
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
|
-
"@bhsd/common": "^0.9.
|
|
81
|
+
"@bhsd/common": "^0.9.3",
|
|
81
82
|
"vscode-languageserver-types": "^3.17.5"
|
|
82
83
|
},
|
|
83
84
|
"optionalDependencies": {
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
"vscode-json-languageservice": "^5.4.3"
|
|
92
93
|
},
|
|
93
94
|
"devDependencies": {
|
|
94
|
-
"@codemirror/lint": "^6.8.
|
|
95
|
+
"@codemirror/lint": "^6.8.5",
|
|
95
96
|
"@stylistic/eslint-plugin": "^3.1.0",
|
|
96
97
|
"@stylistic/stylelint-plugin": "^3.1.2",
|
|
97
98
|
"@types/color-name": "^2.0.0",
|