wikiparser-node 1.4.2 → 1.4.3
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/addon/table.js +5 -1
- package/dist/base.d.ts +6 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +3 -3
- package/dist/lib/element.d.ts +3 -2
- package/dist/lib/element.js +20 -13
- package/dist/lib/node.js +13 -10
- package/dist/lib/text.js +3 -3
- package/dist/lib/title.js +4 -12
- package/dist/mixin/attributesParent.d.ts +32 -2
- package/dist/mixin/attributesParent.js +14 -25
- package/dist/mixin/fixed.d.ts +2 -1
- package/dist/mixin/fixed.js +3 -1
- package/dist/mixin/flagsParent.d.ts +28 -17
- package/dist/mixin/flagsParent.js +12 -25
- package/dist/mixin/magicLinkParent.d.ts +14 -8
- package/dist/mixin/magicLinkParent.js +7 -8
- package/dist/mixin/singleLine.d.ts +2 -1
- package/dist/mixin/singleLine.js +3 -2
- package/dist/mixin/sol.d.ts +2 -4
- package/dist/mixin/sol.js +8 -6
- package/dist/mixin/syntax.d.ts +5 -2
- package/dist/mixin/syntax.js +14 -18
- package/dist/parser/links.js +1 -3
- package/dist/src/arg.d.ts +4 -4
- package/dist/src/arg.js +4 -4
- package/dist/src/attribute.d.ts +9 -7
- package/dist/src/attribute.js +271 -218
- package/dist/src/attributes.d.ts +3 -3
- package/dist/src/attributes.js +0 -1
- package/dist/src/converter.d.ts +7 -2
- package/dist/src/converter.js +113 -64
- package/dist/src/converterFlags.d.ts +5 -5
- package/dist/src/converterFlags.js +0 -1
- package/dist/src/converterRule.d.ts +5 -5
- package/dist/src/converterRule.js +0 -1
- package/dist/src/extLink.d.ts +7 -2
- package/dist/src/extLink.js +159 -110
- package/dist/src/gallery.d.ts +5 -5
- package/dist/src/gallery.js +0 -1
- package/dist/src/heading.d.ts +8 -8
- package/dist/src/heading.js +172 -125
- package/dist/src/html.d.ts +8 -5
- package/dist/src/html.js +263 -214
- package/dist/src/imageParameter.d.ts +2 -2
- package/dist/src/imageParameter.js +1 -0
- package/dist/src/imagemap.d.ts +5 -5
- package/dist/src/imagemap.js +4 -10
- package/dist/src/imagemapLink.d.ts +7 -4
- package/dist/src/imagemapLink.js +75 -26
- package/dist/src/index.js +3 -4
- package/dist/src/link/base.d.ts +2 -2
- package/dist/src/link/base.js +1 -4
- package/dist/src/link/file.d.ts +1 -1
- package/dist/src/link/file.js +0 -1
- package/dist/src/link/galleryImage.d.ts +2 -1
- package/dist/src/link/galleryImage.js +136 -88
- package/dist/src/link/index.js +0 -1
- package/dist/src/magicLink.d.ts +11 -3
- package/dist/src/magicLink.js +170 -120
- package/dist/src/nested.d.ts +5 -5
- package/dist/src/nested.js +1 -0
- package/dist/src/nowiki/base.d.ts +6 -2
- package/dist/src/nowiki/base.js +79 -28
- package/dist/src/nowiki/comment.d.ts +0 -2
- package/dist/src/nowiki/comment.js +0 -9
- package/dist/src/nowiki/doubleUnderscore.js +88 -38
- package/dist/src/nowiki/hr.d.ts +1 -4
- package/dist/src/nowiki/hr.js +53 -4
- package/dist/src/nowiki/index.d.ts +2 -2
- package/dist/src/nowiki/index.js +1 -0
- package/dist/src/nowiki/list.d.ts +1 -4
- package/dist/src/nowiki/list.js +88 -39
- package/dist/src/nowiki/listBase.d.ts +1 -1
- package/dist/src/nowiki/listBase.js +52 -2
- package/dist/src/nowiki/quote.d.ts +3 -3
- package/dist/src/nowiki/quote.js +102 -54
- package/dist/src/paramTag/index.d.ts +5 -5
- package/dist/src/paramTag/index.js +2 -1
- package/dist/src/parameter.d.ts +11 -8
- package/dist/src/parameter.js +225 -176
- package/dist/src/pre.d.ts +5 -5
- package/dist/src/pre.js +1 -0
- package/dist/src/syntax.d.ts +6 -0
- package/dist/src/syntax.js +74 -23
- package/dist/src/table/base.d.ts +6 -3
- package/dist/src/table/base.js +100 -49
- package/dist/src/table/index.d.ts +6 -3
- package/dist/src/table/index.js +5 -9
- package/dist/src/table/td.d.ts +9 -5
- package/dist/src/table/td.js +270 -217
- package/dist/src/table/tr.d.ts +4 -4
- package/dist/src/table/tr.js +1 -0
- package/dist/src/tagPair/ext.d.ts +6 -3
- package/dist/src/tagPair/ext.js +168 -118
- package/dist/src/tagPair/include.d.ts +2 -4
- package/dist/src/tagPair/include.js +0 -8
- package/dist/src/tagPair/index.d.ts +1 -1
- package/dist/src/tagPair/index.js +115 -66
- package/dist/src/transclude.d.ts +3 -3
- package/dist/src/transclude.js +4 -9
- package/dist/util/debug.js +0 -2
- package/package.json +3 -3
package/dist/src/magicLink.js
CHANGED
|
@@ -1,4 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
2
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
37
|
exports.MagicLinkToken = void 0;
|
|
4
38
|
const lint_1 = require("../util/lint");
|
|
@@ -8,142 +42,158 @@ const string_1 = require("../util/string");
|
|
|
8
42
|
const syntax_1 = require("../mixin/syntax");
|
|
9
43
|
const index_1 = require("../index");
|
|
10
44
|
const index_2 = require("./index");
|
|
45
|
+
/** NOT FOR BROWSER END */
|
|
11
46
|
/**
|
|
12
47
|
* 自由外链
|
|
13
48
|
* @classdesc `{childNodes: ...AstText|CommentToken|IncludeToken|NoincludeToken}`
|
|
14
49
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
50
|
+
let MagicLinkToken = (() => {
|
|
51
|
+
let _classDecorators = [(0, syntax_1.syntax)()];
|
|
52
|
+
let _classDescriptor;
|
|
53
|
+
let _classExtraInitializers = [];
|
|
54
|
+
let _classThis;
|
|
55
|
+
let _classSuper = index_2.Token;
|
|
56
|
+
var MagicLinkToken = class extends _classSuper {
|
|
57
|
+
static { _classThis = this; }
|
|
58
|
+
static {
|
|
59
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
60
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
61
|
+
MagicLinkToken = _classThis = _classDescriptor.value;
|
|
62
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
25
64
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
65
|
+
/** 协议 */
|
|
66
|
+
get protocol() {
|
|
67
|
+
return this.pattern.exec(this.text())?.[0];
|
|
29
68
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const map = { '!': '|', '=': '=' };
|
|
35
|
-
return (0, string_1.text)(this.childNodes.map(child => {
|
|
36
|
-
const { type, name } = child;
|
|
37
|
-
return type === 'magic-word' && name in map ? map[name] : child;
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
set link(url) {
|
|
41
|
-
this.setTarget(url);
|
|
42
|
-
}
|
|
43
|
-
/* NOT FOR BROWSER END */
|
|
44
|
-
/**
|
|
45
|
-
* @param url 网址
|
|
46
|
-
* @param doubleSlash 是否接受"//"作为协议
|
|
47
|
-
*/
|
|
48
|
-
constructor(url, doubleSlash = false, config = index_1.default.getConfig(), accum = []) {
|
|
49
|
-
super(url, config, accum, {
|
|
50
|
-
'Stage-1': '1:', '!ExtToken': '', AstText: ':', TranscludeToken: ':',
|
|
51
|
-
});
|
|
52
|
-
this.type = doubleSlash ? 'ext-link-url' : 'free-ext-link';
|
|
53
|
-
/* NOT FOR BROWSER */
|
|
54
|
-
this.setAttribute('pattern', new RegExp(`^(?:${config.protocol}${doubleSlash ? '|//' : ''})`, 'iu'));
|
|
55
|
-
}
|
|
56
|
-
/** @override */
|
|
57
|
-
lint(start = this.getAbsoluteIndex()) {
|
|
58
|
-
const errors = super.lint(start), source = `[,;。:!?()]+${this.type === 'ext-link-url' ? '|\\|+' : ''}`, regex = new RegExp(source, 'u'), regexGlobal = new RegExp(source, 'gu');
|
|
59
|
-
let rect;
|
|
60
|
-
for (const child of this.childNodes) {
|
|
61
|
-
const { type, data } = child;
|
|
62
|
-
if (type !== 'text' || !regex.test(data)) {
|
|
63
|
-
continue;
|
|
69
|
+
/** @throws `Error` 特殊外链无法更改协议n */
|
|
70
|
+
set protocol(value) {
|
|
71
|
+
if (typeof value !== 'string') {
|
|
72
|
+
this.typeError('protocol', 'String');
|
|
64
73
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
for (let mt = regexGlobal.exec(data); mt; mt = regexGlobal.exec(data)) {
|
|
69
|
-
const { index, 0: s } = mt, lines = data.slice(0, index).split('\n'), top = lines.length, left = lines[top - 1].length, startIndex = refError.startIndex + index, startLine = refError.startLine + top - 1, startCol = top === 1 ? refError.startCol + left : left;
|
|
70
|
-
errors.push({
|
|
71
|
-
...refError,
|
|
72
|
-
message: index_1.default.msg('$1 in URL', s.startsWith('|') ? '"|"' : 'full-width punctuation'),
|
|
73
|
-
startIndex,
|
|
74
|
-
endIndex: startIndex + s.length,
|
|
75
|
-
startLine,
|
|
76
|
-
endLine: startLine,
|
|
77
|
-
startCol,
|
|
78
|
-
endCol: startCol + s.length,
|
|
79
|
-
});
|
|
74
|
+
const { link, pattern } = this;
|
|
75
|
+
if (!pattern.test(link)) {
|
|
76
|
+
throw new Error(`特殊外链无法更改协议:${link}`);
|
|
80
77
|
}
|
|
78
|
+
this.setTarget(link.replace(pattern, value));
|
|
81
79
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
80
|
+
/** 和内链保持一致 */
|
|
81
|
+
get link() {
|
|
82
|
+
const map = { '!': '|', '=': '=' };
|
|
83
|
+
return (0, string_1.text)(this.childNodes.map(child => {
|
|
84
|
+
const { type, name } = child;
|
|
85
|
+
return type === 'magic-word' && name in map ? map[name] : child;
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
set link(url) {
|
|
89
|
+
this.setTarget(url);
|
|
90
|
+
}
|
|
91
|
+
/* NOT FOR BROWSER END */
|
|
92
|
+
/**
|
|
93
|
+
* @param url 网址
|
|
94
|
+
* @param doubleSlash 是否接受"//"作为协议
|
|
95
|
+
*/
|
|
96
|
+
constructor(url, doubleSlash = false, config = index_1.default.getConfig(), accum = []) {
|
|
97
|
+
super(url, config, accum, {
|
|
98
|
+
'Stage-1': '1:', '!ExtToken': '', AstText: ':', TranscludeToken: ':',
|
|
99
|
+
});
|
|
100
|
+
this.type = doubleSlash ? 'ext-link-url' : 'free-ext-link';
|
|
101
|
+
/* NOT FOR BROWSER */
|
|
102
|
+
this.setAttribute('pattern', new RegExp(`^(?:${config.protocol}${doubleSlash ? '|//' : ''})`, 'iu'));
|
|
103
|
+
}
|
|
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');
|
|
107
|
+
let rect;
|
|
108
|
+
for (const child of this.childNodes) {
|
|
109
|
+
const { type, data } = child;
|
|
110
|
+
if (type !== 'text' || !regex.test(data)) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
rect ??= { start, ...this.getRootNode().posFromIndex(start) };
|
|
114
|
+
const refError = (0, lint_1.generateForChild)(child, rect, '', 'warning');
|
|
115
|
+
regexGlobal.lastIndex = 0;
|
|
116
|
+
for (let mt = regexGlobal.exec(data); mt; mt = regexGlobal.exec(data)) {
|
|
117
|
+
const { index, 0: s } = mt, lines = data.slice(0, index).split('\n'), top = lines.length, left = lines[top - 1].length, startIndex = refError.startIndex + index, startLine = refError.startLine + top - 1, startCol = top === 1 ? refError.startCol + left : left;
|
|
118
|
+
errors.push({
|
|
119
|
+
...refError,
|
|
120
|
+
message: index_1.default.msg('$1 in URL', s.startsWith('|') ? '"|"' : 'full-width punctuation'),
|
|
121
|
+
startIndex,
|
|
122
|
+
endIndex: startIndex + s.length,
|
|
123
|
+
startLine,
|
|
124
|
+
endLine: startLine,
|
|
125
|
+
startCol,
|
|
126
|
+
endCol: startCol + s.length,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
104
129
|
}
|
|
130
|
+
return errors;
|
|
105
131
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
132
|
+
/* NOT FOR BROWSER */
|
|
133
|
+
/** @override */
|
|
134
|
+
cloneNode() {
|
|
135
|
+
const cloned = this.cloneChildNodes();
|
|
136
|
+
return debug_1.Shadow.run(() => {
|
|
137
|
+
// @ts-expect-error abstract class
|
|
138
|
+
const token = new MagicLinkToken(undefined, this.type === 'ext-link-url', this.getAttribute('config'));
|
|
139
|
+
token.append(...cloned);
|
|
140
|
+
token.afterBuild();
|
|
141
|
+
return token;
|
|
142
|
+
});
|
|
116
143
|
}
|
|
117
|
-
|
|
118
|
-
|
|
144
|
+
insertAt(token, i) {
|
|
145
|
+
if (typeof token !== 'string') {
|
|
146
|
+
const { type, name } = token;
|
|
147
|
+
if (type === 'template') {
|
|
148
|
+
this.constructorError('不可插入模板');
|
|
149
|
+
}
|
|
150
|
+
else if (!debug_1.Shadow.running && type === 'magic-word' && name !== '!' && name !== '=') {
|
|
151
|
+
this.constructorError('不可插入 `{{!}}` 或 `{{=}}` 以外的魔术字');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return super.insertAt(token, i);
|
|
119
155
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
156
|
+
/**
|
|
157
|
+
* 获取网址
|
|
158
|
+
* @throws `Error` 非标准协议
|
|
159
|
+
*/
|
|
160
|
+
getUrl() {
|
|
161
|
+
let { link } = this;
|
|
162
|
+
if (link.startsWith('//')) {
|
|
163
|
+
link = `https:${link}`;
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
return new URL(link);
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
if (e instanceof TypeError && e.message === 'Invalid URL') {
|
|
170
|
+
throw new Error(`非标准协议的外部链接:${link}`);
|
|
171
|
+
}
|
|
172
|
+
throw e;
|
|
123
173
|
}
|
|
124
|
-
throw e;
|
|
125
174
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
175
|
+
/**
|
|
176
|
+
* 设置外链目标
|
|
177
|
+
* @param url 含协议的网址
|
|
178
|
+
*/
|
|
179
|
+
setTarget(url) {
|
|
180
|
+
const { childNodes } = index_1.default.parse(url, this.getAttribute('include'), 2, this.getAttribute('config'));
|
|
181
|
+
this.replaceChildren(...childNodes);
|
|
182
|
+
}
|
|
183
|
+
/** 是否是模板或魔术字参数 */
|
|
184
|
+
isParamValue() {
|
|
185
|
+
return this.closest('parameter')?.getValue() === this.text();
|
|
186
|
+
}
|
|
187
|
+
/** 转义 `=` */
|
|
188
|
+
escape() {
|
|
189
|
+
for (const child of this.childNodes) {
|
|
190
|
+
if (child.type === 'text') {
|
|
191
|
+
child.escape();
|
|
192
|
+
}
|
|
144
193
|
}
|
|
145
194
|
}
|
|
146
|
-
}
|
|
147
|
-
|
|
195
|
+
};
|
|
196
|
+
return MagicLinkToken = _classThis;
|
|
197
|
+
})();
|
|
148
198
|
exports.MagicLinkToken = MagicLinkToken;
|
|
149
199
|
constants_1.classes['MagicLinkToken'] = __filename;
|
package/dist/src/nested.d.ts
CHANGED
|
@@ -14,16 +14,16 @@ export declare abstract class NestedToken extends Token {
|
|
|
14
14
|
readonly type = "ext-inner";
|
|
15
15
|
readonly name: string;
|
|
16
16
|
readonly childNodes: readonly (ExtToken | NoincludeToken | CommentToken)[];
|
|
17
|
-
abstract get children(): (ExtToken | NoincludeToken | CommentToken)[];
|
|
18
17
|
abstract get firstChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
19
|
-
abstract get firstElementChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
20
18
|
abstract get lastChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
21
|
-
abstract get lastElementChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
22
19
|
abstract get nextSibling(): undefined;
|
|
23
|
-
abstract get nextElementSibling(): undefined;
|
|
24
20
|
abstract get previousSibling(): AttributesToken;
|
|
25
|
-
abstract get previousElementSibling(): AttributesToken;
|
|
26
21
|
abstract get parentNode(): ExtToken | undefined;
|
|
22
|
+
abstract get children(): (ExtToken | NoincludeToken | CommentToken)[];
|
|
23
|
+
abstract get firstElementChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
24
|
+
abstract get lastElementChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
25
|
+
abstract get previousElementSibling(): AttributesToken;
|
|
26
|
+
abstract get nextElementSibling(): undefined;
|
|
27
27
|
abstract get parentElement(): ExtToken | undefined;
|
|
28
28
|
/**
|
|
29
29
|
* @param regex 内层正则
|
package/dist/src/nested.js
CHANGED
|
@@ -2,13 +2,17 @@ import Parser from '../../index';
|
|
|
2
2
|
import { Token } from '../index';
|
|
3
3
|
import type { AstText } from '../../lib/text';
|
|
4
4
|
declare type NowikiTypes = 'ext-inner' | 'comment' | 'dd' | 'double-underscore' | 'hr' | 'list' | 'noinclude' | 'quote';
|
|
5
|
+
/**
|
|
6
|
+
* 纯文字Token,不会被解析
|
|
7
|
+
* @classdesc `{childNodes: [AstText]}`
|
|
8
|
+
*/
|
|
5
9
|
export declare abstract class NowikiBaseToken extends Token {
|
|
6
10
|
type: NowikiTypes;
|
|
7
11
|
readonly childNodes: readonly [AstText];
|
|
8
|
-
abstract get children(): [];
|
|
9
12
|
abstract get firstChild(): AstText;
|
|
10
|
-
abstract get firstElementChild(): undefined;
|
|
11
13
|
abstract get lastChild(): AstText;
|
|
14
|
+
abstract get children(): [];
|
|
15
|
+
abstract get firstElementChild(): undefined;
|
|
12
16
|
abstract get lastElementChild(): undefined;
|
|
13
17
|
/** 纯文本部分 */
|
|
14
18
|
get innerText(): string;
|
package/dist/src/nowiki/base.js
CHANGED
|
@@ -1,4 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
2
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
37
|
exports.NowikiBaseToken = void 0;
|
|
4
38
|
const debug_1 = require("../../util/debug");
|
|
@@ -10,33 +44,50 @@ const index_2 = require("../index");
|
|
|
10
44
|
* 纯文字Token,不会被解析
|
|
11
45
|
* @classdesc `{childNodes: [AstText]}`
|
|
12
46
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
47
|
+
let NowikiBaseToken = (() => {
|
|
48
|
+
let _classDecorators = [fixed_1.fixedToken];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
let _classSuper = index_2.Token;
|
|
53
|
+
var NowikiBaseToken = class extends _classSuper {
|
|
54
|
+
static { _classThis = this; }
|
|
55
|
+
static {
|
|
56
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
57
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
58
|
+
NowikiBaseToken = _classThis = _classDescriptor.value;
|
|
59
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
60
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
61
|
+
}
|
|
62
|
+
/* NOT FOR BROWSER END */
|
|
63
|
+
/** 纯文本部分 */
|
|
64
|
+
get innerText() {
|
|
65
|
+
return this.firstChild.data;
|
|
66
|
+
}
|
|
67
|
+
/** @param wikitext default: `''` */
|
|
68
|
+
constructor(wikitext = '', config = index_1.default.getConfig(), accum = []) {
|
|
69
|
+
super(wikitext, config, accum);
|
|
70
|
+
}
|
|
71
|
+
/* NOT FOR BROWSER */
|
|
72
|
+
/** @override */
|
|
73
|
+
cloneNode() {
|
|
74
|
+
const { constructor, firstChild: { data }, type } = this;
|
|
75
|
+
return debug_1.Shadow.run(() => {
|
|
76
|
+
const token = new constructor(data, this.getAttribute('config'));
|
|
77
|
+
token.type = type;
|
|
78
|
+
token.afterBuild();
|
|
79
|
+
return token;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @override
|
|
84
|
+
* @param str 新文本
|
|
85
|
+
*/
|
|
86
|
+
setText(str) {
|
|
87
|
+
return super.setText(str, 0);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return NowikiBaseToken = _classThis;
|
|
91
|
+
})();
|
|
41
92
|
exports.NowikiBaseToken = NowikiBaseToken;
|
|
42
93
|
constants_1.classes['NowikiBaseToken'] = __filename;
|
|
@@ -24,8 +24,6 @@ class CommentToken extends (0, hidden_1.hiddenToken)(base_1.NowikiBaseToken) {
|
|
|
24
24
|
constructor(wikitext, closed = true, config = index_1.default.getConfig(), accum = []) {
|
|
25
25
|
super(wikitext, config, accum);
|
|
26
26
|
this.closed = closed;
|
|
27
|
-
/* NOT FOR BROWSER */
|
|
28
|
-
Object.defineProperty(this, 'closed', { enumerable: false });
|
|
29
27
|
}
|
|
30
28
|
/** @private */
|
|
31
29
|
getAttribute(key) {
|
|
@@ -51,13 +49,6 @@ class CommentToken extends (0, hidden_1.hiddenToken)(base_1.NowikiBaseToken) {
|
|
|
51
49
|
}
|
|
52
50
|
/* NOT FOR BROWSER */
|
|
53
51
|
/** @override */
|
|
54
|
-
json() {
|
|
55
|
-
return {
|
|
56
|
-
...super.json(),
|
|
57
|
-
closed: this.closed,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
/** @override */
|
|
61
52
|
cloneNode() {
|
|
62
53
|
// @ts-expect-error abstract class
|
|
63
54
|
return debug_1.Shadow.run(() => new CommentToken(this.innerText, this.closed, this.getAttribute('config')));
|