wikiparser-node 1.9.2 → 1.9.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/base.d.ts +9 -3
- package/dist/index.js +0 -1
- package/dist/lib/element.d.ts +1 -0
- package/dist/lib/element.js +23 -249
- package/dist/lib/node.d.ts +3 -1
- package/dist/lib/range.js +12 -12
- package/dist/lib/text.d.ts +2 -1
- package/dist/lib/text.js +8 -2
- package/dist/mixin/hidden.js +5 -0
- package/dist/mixin/syntax.js +2 -1
- package/dist/parser/selector.js +223 -20
- package/dist/parser/table.js +3 -3
- package/dist/src/arg.d.ts +1 -2
- package/dist/src/arg.js +3 -2
- package/dist/src/atom.d.ts +5 -3
- package/dist/src/atom.js +28 -2
- package/dist/src/attribute.d.ts +1 -2
- package/dist/src/attribute.js +5 -2
- package/dist/src/attributes.d.ts +1 -2
- package/dist/src/attributes.js +7 -2
- package/dist/src/converter.d.ts +1 -2
- package/dist/src/converter.js +5 -2
- package/dist/src/converterFlags.d.ts +1 -2
- package/dist/src/converterFlags.js +5 -2
- package/dist/src/converterRule.d.ts +1 -3
- package/dist/src/converterRule.js +5 -3
- package/dist/src/extLink.d.ts +1 -2
- package/dist/src/extLink.js +5 -2
- package/dist/src/gallery.d.ts +1 -2
- package/dist/src/gallery.js +7 -4
- package/dist/src/heading.d.ts +1 -2
- package/dist/src/heading.js +3 -2
- package/dist/src/hidden.d.ts +1 -2
- package/dist/src/hidden.js +3 -2
- package/dist/src/html.d.ts +1 -2
- package/dist/src/html.js +3 -2
- package/dist/src/imageParameter.d.ts +1 -2
- package/dist/src/imageParameter.js +3 -2
- package/dist/src/imagemap.d.ts +1 -2
- package/dist/src/imagemap.js +3 -2
- package/dist/src/imagemapLink.d.ts +1 -1
- package/dist/src/imagemapLink.js +5 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +26 -1
- package/dist/src/link/base.d.ts +1 -2
- package/dist/src/link/base.js +5 -3
- package/dist/src/link/category.d.ts +1 -1
- package/dist/src/link/category.js +5 -1
- package/dist/src/link/file.d.ts +1 -1
- package/dist/src/link/file.js +3 -1
- package/dist/src/link/galleryImage.d.ts +1 -2
- package/dist/src/link/galleryImage.js +7 -33
- package/dist/src/link/index.d.ts +1 -2
- package/dist/src/link/index.js +5 -2
- package/dist/src/link/redirectTarget.d.ts +1 -2
- package/dist/src/link/redirectTarget.js +5 -2
- package/dist/src/magicLink.d.ts +2 -2
- package/dist/src/magicLink.js +8 -5
- package/dist/src/nested.d.ts +1 -2
- package/dist/src/nested.js +3 -2
- package/dist/src/nowiki/base.d.ts +1 -2
- package/dist/src/nowiki/base.js +1 -3
- package/dist/src/nowiki/comment.d.ts +1 -2
- package/dist/src/nowiki/comment.js +3 -2
- package/dist/src/nowiki/dd.d.ts +1 -1
- package/dist/src/nowiki/dd.js +3 -1
- package/dist/src/nowiki/doubleUnderscore.d.ts +1 -2
- package/dist/src/nowiki/doubleUnderscore.js +3 -2
- package/dist/src/nowiki/hr.d.ts +1 -1
- package/dist/src/nowiki/hr.js +3 -1
- package/dist/src/nowiki/index.d.ts +1 -1
- package/dist/src/nowiki/index.js +3 -1
- package/dist/src/nowiki/list.d.ts +1 -1
- package/dist/src/nowiki/list.js +3 -1
- package/dist/src/nowiki/listBase.d.ts +1 -1
- package/dist/src/nowiki/noinclude.d.ts +1 -5
- package/dist/src/nowiki/noinclude.js +3 -5
- package/dist/src/nowiki/quote.d.ts +1 -4
- package/dist/src/nowiki/quote.js +3 -4
- package/dist/src/onlyinclude.d.ts +1 -2
- package/dist/src/onlyinclude.js +3 -2
- package/dist/src/paramTag/index.d.ts +1 -2
- package/dist/src/paramTag/index.js +3 -2
- package/dist/src/parameter.d.ts +1 -7
- package/dist/src/parameter.js +3 -7
- package/dist/src/pre.d.ts +1 -2
- package/dist/src/pre.js +3 -2
- package/dist/src/redirect.d.ts +1 -2
- package/dist/src/redirect.js +3 -2
- package/dist/src/syntax.d.ts +4 -4
- package/dist/src/syntax.js +6 -3
- package/dist/src/table/base.d.ts +1 -2
- package/dist/src/table/base.js +0 -1
- package/dist/src/table/index.d.ts +1 -10
- package/dist/src/table/index.js +3 -10
- package/dist/src/table/td.d.ts +1 -7
- package/dist/src/table/td.js +3 -7
- package/dist/src/table/tr.d.ts +1 -1
- package/dist/src/table/tr.js +3 -1
- package/dist/src/table/trBase.d.ts +1 -1
- package/dist/src/tagPair/ext.d.ts +1 -2
- package/dist/src/tagPair/ext.js +7 -4
- package/dist/src/tagPair/include.d.ts +1 -3
- package/dist/src/tagPair/include.js +5 -3
- package/dist/src/tagPair/index.d.ts +1 -1
- package/dist/src/transclude.d.ts +1 -2
- package/dist/src/transclude.js +8 -5
- package/dist/util/constants.js +2 -2
- package/dist/util/debug.js +0 -2
- package/package.json +1 -1
|
@@ -11,7 +11,11 @@ const atom_1 = require("./atom");
|
|
|
11
11
|
* @classdesc `{childNodes: ...AtomToken}`
|
|
12
12
|
*/
|
|
13
13
|
class ConverterRuleToken extends index_2.Token {
|
|
14
|
-
|
|
14
|
+
/* NOT FOR BROWSER END */
|
|
15
|
+
get type() {
|
|
16
|
+
return 'converter-rule';
|
|
17
|
+
}
|
|
18
|
+
/* NOT FOR BROWSER */
|
|
15
19
|
/** 语言变体 */
|
|
16
20
|
get variant() {
|
|
17
21
|
return this.childNodes[this.length - 2]?.text().trim() ?? '';
|
|
@@ -107,7 +111,6 @@ class ConverterRuleToken extends index_2.Token {
|
|
|
107
111
|
return super.print({ sep: ':' });
|
|
108
112
|
}
|
|
109
113
|
/* NOT FOR BROWSER */
|
|
110
|
-
/** @override */
|
|
111
114
|
cloneNode() {
|
|
112
115
|
const cloned = this.cloneChildNodes(), placeholders = ['', 'zh:', '=>zh:'], placeholder = placeholders[cloned.length - 1];
|
|
113
116
|
return debug_1.Shadow.run(() => {
|
|
@@ -144,7 +147,6 @@ class ConverterRuleToken extends index_2.Token {
|
|
|
144
147
|
}
|
|
145
148
|
return super.removeAt(i);
|
|
146
149
|
}
|
|
147
|
-
/** @override */
|
|
148
150
|
insertAt() {
|
|
149
151
|
this.constructorError('has complex syntax. Do not try to insert child nodes manually');
|
|
150
152
|
}
|
package/dist/src/extLink.d.ts
CHANGED
|
@@ -11,13 +11,13 @@ export interface ExtLinkToken extends MagicLinkParentBase {
|
|
|
11
11
|
*/
|
|
12
12
|
export declare abstract class ExtLinkToken extends Token {
|
|
13
13
|
#private;
|
|
14
|
-
readonly type = "ext-link";
|
|
15
14
|
readonly childNodes: readonly [MagicLinkToken] | readonly [MagicLinkToken, Token];
|
|
16
15
|
abstract get firstChild(): MagicLinkToken;
|
|
17
16
|
abstract get lastChild(): Token;
|
|
18
17
|
abstract get children(): [MagicLinkToken] | [MagicLinkToken, Token];
|
|
19
18
|
abstract get firstElementChild(): MagicLinkToken;
|
|
20
19
|
abstract get lastElementChild(): Token;
|
|
20
|
+
get type(): 'ext-link';
|
|
21
21
|
/** 链接显示文字 */
|
|
22
22
|
get innerText(): string;
|
|
23
23
|
set innerText(text: string);
|
|
@@ -27,7 +27,6 @@ export declare abstract class ExtLinkToken extends Token {
|
|
|
27
27
|
* @param text 链接文字
|
|
28
28
|
*/
|
|
29
29
|
constructor(url?: string, space?: string, text?: string, config?: Parser.Config, accum?: Token[]);
|
|
30
|
-
/** @override */
|
|
31
30
|
cloneNode(): this;
|
|
32
31
|
/**
|
|
33
32
|
* 设置链接显示文字
|
package/dist/src/extLink.js
CHANGED
|
@@ -62,8 +62,12 @@ let ExtLinkToken = (() => {
|
|
|
62
62
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
63
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
64
64
|
}
|
|
65
|
-
type = 'ext-link';
|
|
66
65
|
#space;
|
|
66
|
+
/* NOT FOR BROWSER END */
|
|
67
|
+
get type() {
|
|
68
|
+
return 'ext-link';
|
|
69
|
+
}
|
|
70
|
+
/* NOT FOR BROWSER */
|
|
67
71
|
/** 链接显示文字 */
|
|
68
72
|
get innerText() {
|
|
69
73
|
return this.length > 1
|
|
@@ -142,7 +146,6 @@ let ExtLinkToken = (() => {
|
|
|
142
146
|
return super.print(this.length === 1 ? { pre: '[', post: `${this.#space}]` } : { pre: '[', sep: this.#space, post: ']' });
|
|
143
147
|
}
|
|
144
148
|
/* NOT FOR BROWSER */
|
|
145
|
-
/** @override */
|
|
146
149
|
cloneNode() {
|
|
147
150
|
const [url, text] = this.cloneChildNodes();
|
|
148
151
|
return debug_1.Shadow.run(() => {
|
package/dist/src/gallery.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ import type { AstText, AttributesToken, ExtToken, AstNodes } from '../internal';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class GalleryToken extends Token {
|
|
12
12
|
#private;
|
|
13
|
-
readonly type = "ext-inner";
|
|
14
13
|
readonly name: 'gallery';
|
|
15
14
|
readonly childNodes: readonly (GalleryImageToken | NoincludeToken | AstText)[];
|
|
16
15
|
abstract get firstChild(): GalleryImageToken | NoincludeToken | AstText | undefined;
|
|
@@ -24,11 +23,11 @@ export declare abstract class GalleryToken extends Token {
|
|
|
24
23
|
abstract get nextElementSibling(): undefined;
|
|
25
24
|
abstract get previousElementSibling(): AttributesToken;
|
|
26
25
|
abstract get parentElement(): ExtToken | undefined;
|
|
26
|
+
get type(): 'ext-inner';
|
|
27
27
|
/** 所有图片 */
|
|
28
28
|
get images(): GalleryImageToken[];
|
|
29
29
|
/** @param inner 标签内部wikitext */
|
|
30
30
|
constructor(inner?: string, config?: Parser.Config, accum?: Token[]);
|
|
31
|
-
/** @override */
|
|
32
31
|
cloneNode(): this;
|
|
33
32
|
/**
|
|
34
33
|
* 插入图片
|
package/dist/src/gallery.js
CHANGED
|
@@ -12,7 +12,11 @@ const noinclude_1 = require("./nowiki/noinclude");
|
|
|
12
12
|
* @classdesc `{childNodes: ...(GalleryImageToken|NoincludeToken|AstText)}`
|
|
13
13
|
*/
|
|
14
14
|
class GalleryToken extends index_2.Token {
|
|
15
|
-
|
|
15
|
+
/* NOT FOR BROWSER END */
|
|
16
|
+
get type() {
|
|
17
|
+
return 'ext-inner';
|
|
18
|
+
}
|
|
19
|
+
/* NOT FOR BROWSER */
|
|
16
20
|
/** 所有图片 */
|
|
17
21
|
get images() {
|
|
18
22
|
return this.childNodes.filter((0, debug_1.isToken)('gallery-image'));
|
|
@@ -27,7 +31,7 @@ class GalleryToken extends index_2.Token {
|
|
|
27
31
|
const matches = /^([^|]+)(?:\|(.*))?/u.exec(line);
|
|
28
32
|
if (!matches) {
|
|
29
33
|
// @ts-expect-error abstract class
|
|
30
|
-
super.insertAt((line.trim() ? new noinclude_1.NoincludeToken(line, config) : line));
|
|
34
|
+
super.insertAt((line.trim() ? new noinclude_1.NoincludeToken(line, config, accum) : line));
|
|
31
35
|
continue;
|
|
32
36
|
}
|
|
33
37
|
const [, file, alt] = matches;
|
|
@@ -37,7 +41,7 @@ class GalleryToken extends index_2.Token {
|
|
|
37
41
|
}
|
|
38
42
|
else {
|
|
39
43
|
// @ts-expect-error abstract class
|
|
40
|
-
super.insertAt(new noinclude_1.NoincludeToken(line, config));
|
|
44
|
+
super.insertAt(new noinclude_1.NoincludeToken(line, config, accum));
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
}
|
|
@@ -102,7 +106,6 @@ class GalleryToken extends index_2.Token {
|
|
|
102
106
|
return super.print({ sep: '\n' });
|
|
103
107
|
}
|
|
104
108
|
/* NOT FOR BROWSER */
|
|
105
|
-
/** @override */
|
|
106
109
|
cloneNode() {
|
|
107
110
|
const cloned = this.cloneChildNodes();
|
|
108
111
|
return debug_1.Shadow.run(() => {
|
package/dist/src/heading.d.ts
CHANGED
|
@@ -8,13 +8,13 @@ import type { LintError, AST } from '../base';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class HeadingToken extends Token {
|
|
10
10
|
#private;
|
|
11
|
-
readonly type = "heading";
|
|
12
11
|
readonly childNodes: readonly [Token, SyntaxToken];
|
|
13
12
|
abstract get firstChild(): Token;
|
|
14
13
|
abstract get lastChild(): SyntaxToken;
|
|
15
14
|
abstract get children(): [Token, SyntaxToken];
|
|
16
15
|
abstract get firstElementChild(): Token;
|
|
17
16
|
abstract get lastElementChild(): SyntaxToken;
|
|
17
|
+
get type(): 'heading';
|
|
18
18
|
/** 标题层级 */
|
|
19
19
|
get level(): number;
|
|
20
20
|
set level(n: number);
|
|
@@ -29,7 +29,6 @@ export declare abstract class HeadingToken extends Token {
|
|
|
29
29
|
constructor(level: number, input: readonly [string?, string?], config?: Parser.Config, accum?: Token[]);
|
|
30
30
|
/** @override */
|
|
31
31
|
json(): AST;
|
|
32
|
-
/** @override */
|
|
33
32
|
cloneNode(): this;
|
|
34
33
|
/**
|
|
35
34
|
* 设置标题层级
|
package/dist/src/heading.js
CHANGED
|
@@ -63,9 +63,11 @@ let HeadingToken = (() => {
|
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
65
65
|
}
|
|
66
|
-
type = 'heading';
|
|
67
66
|
#level;
|
|
68
67
|
/* NOT FOR BROWSER END */
|
|
68
|
+
get type() {
|
|
69
|
+
return 'heading';
|
|
70
|
+
}
|
|
69
71
|
/** 标题格式的等号 */
|
|
70
72
|
get #equals() {
|
|
71
73
|
return '='.repeat(this.level);
|
|
@@ -156,7 +158,6 @@ let HeadingToken = (() => {
|
|
|
156
158
|
return json;
|
|
157
159
|
}
|
|
158
160
|
/* NOT FOR BROWSER */
|
|
159
|
-
/** @override */
|
|
160
161
|
cloneNode() {
|
|
161
162
|
const [title, trail] = this.cloneChildNodes();
|
|
162
163
|
return debug_1.Shadow.run(() => {
|
package/dist/src/hidden.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import { Token } from './index';
|
|
|
2
2
|
import type { Config } from '../base';
|
|
3
3
|
/** 不可见的节点 */
|
|
4
4
|
export declare class HiddenToken extends Token {
|
|
5
|
-
|
|
5
|
+
get type(): 'hidden';
|
|
6
6
|
/** @class */
|
|
7
7
|
constructor(wikitext?: string, config?: Config, accum?: Token[]);
|
|
8
|
-
/** @override */
|
|
9
8
|
cloneNode(): this;
|
|
10
9
|
}
|
package/dist/src/hidden.js
CHANGED
|
@@ -55,7 +55,9 @@ let HiddenToken = (() => {
|
|
|
55
55
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
56
56
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
57
57
|
}
|
|
58
|
-
type
|
|
58
|
+
get type() {
|
|
59
|
+
return 'hidden';
|
|
60
|
+
}
|
|
59
61
|
/* NOT FOR BROWSER */
|
|
60
62
|
/** @class */
|
|
61
63
|
constructor(wikitext, config, accum) {
|
|
@@ -63,7 +65,6 @@ let HiddenToken = (() => {
|
|
|
63
65
|
'Stage-2': ':', '!HeadingToken': '',
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
|
-
/** @override */
|
|
67
68
|
cloneNode() {
|
|
68
69
|
const cloned = this.cloneChildNodes(), config = this.getAttribute('config');
|
|
69
70
|
return debug_1.Shadow.run(() => {
|
package/dist/src/html.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export interface HtmlToken extends AttributesParentBase {
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class HtmlToken extends Token {
|
|
12
12
|
#private;
|
|
13
|
-
readonly type = "html";
|
|
14
13
|
readonly name: string;
|
|
15
14
|
readonly childNodes: readonly [AttributesToken];
|
|
16
15
|
abstract get firstChild(): AttributesToken;
|
|
@@ -18,6 +17,7 @@ export declare abstract class HtmlToken extends Token {
|
|
|
18
17
|
abstract get children(): [AttributesToken];
|
|
19
18
|
abstract get firstElementChild(): AttributesToken;
|
|
20
19
|
abstract get lastElementChild(): AttributesToken;
|
|
20
|
+
get type(): 'html';
|
|
21
21
|
/** 是否自封闭 */
|
|
22
22
|
get selfClosing(): boolean;
|
|
23
23
|
/** 是否是闭合标签 */
|
|
@@ -42,7 +42,6 @@ export declare abstract class HtmlToken extends Token {
|
|
|
42
42
|
findMatchingTag(): this | undefined;
|
|
43
43
|
/** @override */
|
|
44
44
|
json(): AST;
|
|
45
|
-
/** @override */
|
|
46
45
|
cloneNode(): this;
|
|
47
46
|
/**
|
|
48
47
|
* 更换标签名
|
package/dist/src/html.js
CHANGED
|
@@ -91,11 +91,13 @@ let HtmlToken = (() => {
|
|
|
91
91
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
92
92
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
93
93
|
}
|
|
94
|
-
type = 'html';
|
|
95
94
|
#closing;
|
|
96
95
|
#selfClosing;
|
|
97
96
|
#tag;
|
|
98
97
|
/* NOT FOR BROWSER END */
|
|
98
|
+
get type() {
|
|
99
|
+
return 'html';
|
|
100
|
+
}
|
|
99
101
|
/** 是否自封闭 */
|
|
100
102
|
get selfClosing() {
|
|
101
103
|
return this.#selfClosing;
|
|
@@ -284,7 +286,6 @@ let HtmlToken = (() => {
|
|
|
284
286
|
return json;
|
|
285
287
|
}
|
|
286
288
|
/* NOT FOR BROWSER */
|
|
287
|
-
/** @override */
|
|
288
289
|
cloneNode() {
|
|
289
290
|
const [attr] = this.cloneChildNodes(), config = this.getAttribute('config');
|
|
290
291
|
// @ts-expect-error abstract class
|
|
@@ -7,7 +7,6 @@ export declare const galleryParams: Set<string>;
|
|
|
7
7
|
/** 图片参数 */
|
|
8
8
|
export declare abstract class ImageParameterToken extends Token {
|
|
9
9
|
#private;
|
|
10
|
-
readonly type = "image-parameter";
|
|
11
10
|
readonly name: string;
|
|
12
11
|
abstract get parentNode(): FileToken | undefined;
|
|
13
12
|
abstract get nextSibling(): this | undefined;
|
|
@@ -15,6 +14,7 @@ export declare abstract class ImageParameterToken extends Token {
|
|
|
15
14
|
abstract get parentElement(): FileToken | undefined;
|
|
16
15
|
abstract get nextElementSibling(): this | undefined;
|
|
17
16
|
abstract get previousElementSibling(): AtomToken | this;
|
|
17
|
+
get type(): 'image-parameter';
|
|
18
18
|
/** 图片链接 */
|
|
19
19
|
get link(): string | Title | undefined;
|
|
20
20
|
set link(value: string);
|
|
@@ -40,7 +40,6 @@ export declare abstract class ImageParameterToken extends Token {
|
|
|
40
40
|
constructor(str: string, extension: string | undefined, config?: Parser.Config, accum?: Token[]);
|
|
41
41
|
/** 获取参数值 */
|
|
42
42
|
getValue(): string | true;
|
|
43
|
-
/** @override */
|
|
44
43
|
cloneNode(): this;
|
|
45
44
|
/**
|
|
46
45
|
* @override
|
|
@@ -44,10 +44,12 @@ function validate(key, val, config, halfParsed, ext) {
|
|
|
44
44
|
}
|
|
45
45
|
/** 图片参数 */
|
|
46
46
|
class ImageParameterToken extends index_2.Token {
|
|
47
|
-
type = 'image-parameter';
|
|
48
47
|
#syntax = '';
|
|
49
48
|
#extension;
|
|
50
49
|
/* NOT FOR BROWSER END */
|
|
50
|
+
get type() {
|
|
51
|
+
return 'image-parameter';
|
|
52
|
+
}
|
|
51
53
|
/** 图片链接 */
|
|
52
54
|
get link() {
|
|
53
55
|
return this.name === 'link' ? validate('link', super.text(), this.getAttribute('config')) : undefined;
|
|
@@ -202,7 +204,6 @@ class ImageParameterToken extends index_2.Token {
|
|
|
202
204
|
return super.print({ class: 'image-caption' });
|
|
203
205
|
}
|
|
204
206
|
/* NOT FOR BROWSER */
|
|
205
|
-
/** @override */
|
|
206
207
|
cloneNode() {
|
|
207
208
|
const cloned = this.cloneChildNodes(), config = this.getAttribute('config');
|
|
208
209
|
return debug_1.Shadow.run(() => {
|
package/dist/src/imagemap.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ import type { AstText, AttributesToken, ExtToken, AstNodes } from '../internal';
|
|
|
10
10
|
* @classdesc `{childNodes: ...NoincludeToken, GalleryImageToken, ...(NoincludeToken|ImagemapLinkToken|AstText)}`
|
|
11
11
|
*/
|
|
12
12
|
export declare abstract class ImagemapToken extends Token {
|
|
13
|
-
readonly type = "ext-inner";
|
|
14
13
|
readonly name: 'imagemap';
|
|
15
14
|
readonly childNodes: readonly (GalleryImageToken | NoincludeToken | ImagemapLinkToken | AstText)[];
|
|
16
15
|
abstract get firstChild(): NoincludeToken | GalleryImageToken | undefined;
|
|
@@ -24,6 +23,7 @@ export declare abstract class ImagemapToken extends Token {
|
|
|
24
23
|
abstract get nextElementSibling(): undefined;
|
|
25
24
|
abstract get previousElementSibling(): AttributesToken;
|
|
26
25
|
abstract get parentElement(): ExtToken | undefined;
|
|
26
|
+
get type(): 'ext-inner';
|
|
27
27
|
/** 图片 */
|
|
28
28
|
get image(): GalleryImageToken | undefined;
|
|
29
29
|
/** @param inner 标签内部wikitext */
|
|
@@ -43,6 +43,5 @@ export declare abstract class ImagemapToken extends Token {
|
|
|
43
43
|
* @throws `Error` 禁止移除图片
|
|
44
44
|
*/
|
|
45
45
|
removeAt(i: number): AstNodes;
|
|
46
|
-
/** @override */
|
|
47
46
|
cloneNode(): this;
|
|
48
47
|
}
|
package/dist/src/imagemap.js
CHANGED
|
@@ -16,8 +16,10 @@ const imagemapLink_1 = require("./imagemapLink");
|
|
|
16
16
|
* @classdesc `{childNodes: ...NoincludeToken, GalleryImageToken, ...(NoincludeToken|ImagemapLinkToken|AstText)}`
|
|
17
17
|
*/
|
|
18
18
|
class ImagemapToken extends index_2.Token {
|
|
19
|
-
type = 'ext-inner';
|
|
20
19
|
/* NOT FOR BROWSER END */
|
|
20
|
+
get type() {
|
|
21
|
+
return 'ext-inner';
|
|
22
|
+
}
|
|
21
23
|
/** 图片 */
|
|
22
24
|
get image() {
|
|
23
25
|
return this.childNodes.find((0, debug_1.isToken)('imagemap-image'));
|
|
@@ -130,7 +132,6 @@ class ImagemapToken extends index_2.Token {
|
|
|
130
132
|
}
|
|
131
133
|
return super.removeAt(i);
|
|
132
134
|
}
|
|
133
|
-
/** @override */
|
|
134
135
|
cloneNode() {
|
|
135
136
|
const cloned = this.cloneChildNodes();
|
|
136
137
|
return debug_1.Shadow.run(() => {
|
|
@@ -10,7 +10,6 @@ import type { AstText, ImagemapToken } from '../internal';
|
|
|
10
10
|
* @classdesc `{childNodes: [AstText, LinkToken|ExtLinkToken, NoincludeToken]}`
|
|
11
11
|
*/
|
|
12
12
|
export declare abstract class ImagemapLinkToken extends Token {
|
|
13
|
-
readonly type = "imagemap-link";
|
|
14
13
|
readonly childNodes: readonly [AstText, LinkToken | ExtLinkToken, NoincludeToken];
|
|
15
14
|
abstract get firstChild(): AstText;
|
|
16
15
|
abstract get lastChild(): NoincludeToken;
|
|
@@ -19,6 +18,7 @@ export declare abstract class ImagemapLinkToken extends Token {
|
|
|
19
18
|
abstract get firstElementChild(): LinkToken | ExtLinkToken;
|
|
20
19
|
abstract get lastElementChild(): NoincludeToken;
|
|
21
20
|
abstract get parentElement(): ImagemapToken | undefined;
|
|
21
|
+
get type(): 'imagemap-link';
|
|
22
22
|
/** 内外链接 */
|
|
23
23
|
get link(): string | Title;
|
|
24
24
|
set link(link: string);
|
package/dist/src/imagemapLink.js
CHANGED
|
@@ -62,7 +62,11 @@ let ImagemapLinkToken = (() => {
|
|
|
62
62
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
63
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
/* NOT FOR BROWSER END */
|
|
66
|
+
get type() {
|
|
67
|
+
return 'imagemap-link';
|
|
68
|
+
}
|
|
69
|
+
/* NOT FOR BROWSER */
|
|
66
70
|
/** 内外链接 */
|
|
67
71
|
get link() {
|
|
68
72
|
return this.childNodes[1].link;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export type TagToken = IncludeToken | ExtToken | HtmlToken;
|
|
|
15
15
|
*/
|
|
16
16
|
export declare class Token extends AstElement {
|
|
17
17
|
#private;
|
|
18
|
-
type: TokenTypes;
|
|
18
|
+
get type(): TokenTypes;
|
|
19
|
+
set type(value: TokenTypes);
|
|
19
20
|
/** 所有图片,包括图库 */
|
|
20
21
|
get images(): FileToken[];
|
|
21
22
|
/** 所有内链、外链和自由外链 */
|
package/dist/src/index.js
CHANGED
|
@@ -50,6 +50,20 @@ const ranges_1 = require("../lib/ranges");
|
|
|
50
50
|
const index_1 = require("../index");
|
|
51
51
|
const element_1 = require("../lib/element");
|
|
52
52
|
const text_1 = require("../lib/text");
|
|
53
|
+
const plainTypes = new Set([
|
|
54
|
+
'plain',
|
|
55
|
+
'root',
|
|
56
|
+
'table-inter',
|
|
57
|
+
'arg-default',
|
|
58
|
+
'attr-value',
|
|
59
|
+
'ext-link-text',
|
|
60
|
+
'heading-title',
|
|
61
|
+
'parameter-key',
|
|
62
|
+
'parameter-value',
|
|
63
|
+
'link-text',
|
|
64
|
+
'td-inner',
|
|
65
|
+
'ext-inner',
|
|
66
|
+
]);
|
|
53
67
|
/**
|
|
54
68
|
* 可接受的Token类型
|
|
55
69
|
* @param value 可接受的Token类型
|
|
@@ -79,7 +93,7 @@ const getAcceptable = (value) => {
|
|
|
79
93
|
* @classdesc `{childNodes: ...(AstText|Token)}`
|
|
80
94
|
*/
|
|
81
95
|
class Token extends element_1.AstElement {
|
|
82
|
-
type = 'plain';
|
|
96
|
+
#type = 'plain';
|
|
83
97
|
/** 解析阶段,参见顶部注释。只对plain Token有意义。 */
|
|
84
98
|
#stage = 0;
|
|
85
99
|
#config;
|
|
@@ -91,6 +105,17 @@ class Token extends element_1.AstElement {
|
|
|
91
105
|
/* NOT FOR BROWSER */
|
|
92
106
|
#acceptable;
|
|
93
107
|
#protectedChildren = new ranges_1.Ranges();
|
|
108
|
+
/* NOT FOR BROWSER END */
|
|
109
|
+
get type() {
|
|
110
|
+
return this.#type;
|
|
111
|
+
}
|
|
112
|
+
set type(value) {
|
|
113
|
+
if (!plainTypes.has(value)) {
|
|
114
|
+
throw new RangeError(`"${value}" is not a valid type for ${this.constructor.name}!`);
|
|
115
|
+
}
|
|
116
|
+
this.#type = value;
|
|
117
|
+
}
|
|
118
|
+
/* NOT FOR BROWSER */
|
|
94
119
|
/** 所有图片,包括图库 */
|
|
95
120
|
get images() {
|
|
96
121
|
return this.querySelectorAll('file, gallery-image, imagemap-image');
|
package/dist/src/link/base.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ import type { Title } from '../../lib/title';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare abstract class LinkBaseToken extends Token {
|
|
11
11
|
#private;
|
|
12
|
-
type: 'link' | 'category' | 'file' | 'gallery-image' | 'imagemap-image' | 'redirect-target';
|
|
13
12
|
readonly name: string;
|
|
13
|
+
abstract get type(): 'link' | 'category' | 'file' | 'gallery-image' | 'imagemap-image' | 'redirect-target';
|
|
14
14
|
readonly childNodes: readonly [AtomToken, ...Token[]];
|
|
15
15
|
abstract get firstChild(): AtomToken;
|
|
16
16
|
abstract get lastChild(): Token;
|
|
@@ -29,7 +29,6 @@ export declare abstract class LinkBaseToken extends Token {
|
|
|
29
29
|
* @param delimiter `|`
|
|
30
30
|
*/
|
|
31
31
|
constructor(link: string, linkText?: string, config?: Parser.Config, accum?: Token[], delimiter?: string);
|
|
32
|
-
/** @override */
|
|
33
32
|
cloneNode(this: this & {
|
|
34
33
|
constructor: new (...args: any[]) => unknown;
|
|
35
34
|
}): this;
|
package/dist/src/link/base.js
CHANGED
|
@@ -8,6 +8,9 @@ const debug_1 = require("../../util/debug");
|
|
|
8
8
|
const index_1 = require("../../index");
|
|
9
9
|
const index_2 = require("../index");
|
|
10
10
|
const atom_1 = require("../atom");
|
|
11
|
+
/* NOT FOR BROWSER */
|
|
12
|
+
const fileTypes = new Set(['file', 'gallery-image', 'imagemap-image']);
|
|
13
|
+
/* NOT FOR BROWSER END */
|
|
11
14
|
/**
|
|
12
15
|
* 内链
|
|
13
16
|
* @classdesc `{childNodes: [AtomToken, ...Token]}`
|
|
@@ -75,9 +78,9 @@ class LinkBaseToken extends index_2.Token {
|
|
|
75
78
|
throw new Error(`Invalid link target: ${name}`);
|
|
76
79
|
}
|
|
77
80
|
else if (this.type === 'category' && (interwiki || ns !== 14)
|
|
78
|
-
|| this.type
|
|
81
|
+
|| fileTypes.has(this.type) && (interwiki || ns !== 6)) {
|
|
79
82
|
(0, debug_1.undo)(e, data);
|
|
80
|
-
throw new Error(`${this.type === '
|
|
83
|
+
throw new Error(`${this.type === 'category' ? 'Category' : 'File'} link cannot change namespace: ${name}`);
|
|
81
84
|
}
|
|
82
85
|
else if (this.type === 'link'
|
|
83
86
|
&& !interwiki
|
|
@@ -177,7 +180,6 @@ class LinkBaseToken extends index_2.Token {
|
|
|
177
180
|
return super.print(this.#bracket ? { pre: '[[', post: ']]', sep: this.#delimiter } : { sep: this.#delimiter });
|
|
178
181
|
}
|
|
179
182
|
/* NOT FOR BROWSER */
|
|
180
|
-
/** @override */
|
|
181
183
|
cloneNode() {
|
|
182
184
|
const [link, ...linkText] = this.cloneChildNodes();
|
|
183
185
|
return debug_1.Shadow.run(() => {
|
|
@@ -6,11 +6,11 @@ import type { Token, AtomToken } from '../../internal';
|
|
|
6
6
|
* @classdesc `{childNodes: [AtomToken, ?Token]}`
|
|
7
7
|
*/
|
|
8
8
|
export declare abstract class CategoryToken extends LinkBaseToken {
|
|
9
|
-
readonly type = "category";
|
|
10
9
|
readonly childNodes: readonly [AtomToken] | readonly [AtomToken, Token];
|
|
11
10
|
abstract get children(): [AtomToken] | [AtomToken, Token];
|
|
12
11
|
abstract get link(): Title;
|
|
13
12
|
abstract set link(link: string);
|
|
13
|
+
get type(): 'category';
|
|
14
14
|
/** 分类排序关键字 */
|
|
15
15
|
get sortkey(): string | undefined;
|
|
16
16
|
set sortkey(text: string | undefined);
|
|
@@ -9,7 +9,11 @@ const base_1 = require("./base");
|
|
|
9
9
|
* @classdesc `{childNodes: [AtomToken, ?Token]}`
|
|
10
10
|
*/
|
|
11
11
|
class CategoryToken extends base_1.LinkBaseToken {
|
|
12
|
-
|
|
12
|
+
/* NOT FOR BROWSER END */
|
|
13
|
+
get type() {
|
|
14
|
+
return 'category';
|
|
15
|
+
}
|
|
16
|
+
/* NOT FOR BROWSER */
|
|
13
17
|
/** 分类排序关键字 */
|
|
14
18
|
get sortkey() {
|
|
15
19
|
const { childNodes: [, child] } = this;
|
package/dist/src/link/file.d.ts
CHANGED
|
@@ -10,11 +10,11 @@ import type { Token, AtomToken } from '../../internal';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class FileToken extends LinkBaseToken {
|
|
12
12
|
#private;
|
|
13
|
-
readonly type: 'file' | 'gallery-image' | 'imagemap-image';
|
|
14
13
|
readonly childNodes: readonly [AtomToken, ...ImageParameterToken[]];
|
|
15
14
|
abstract get lastChild(): AtomToken | ImageParameterToken;
|
|
16
15
|
abstract get children(): [AtomToken, ...ImageParameterToken[]];
|
|
17
16
|
abstract get lastElementChild(): AtomToken | ImageParameterToken;
|
|
17
|
+
get type(): 'file' | 'gallery-image' | 'imagemap-image';
|
|
18
18
|
/** 扩展名 */
|
|
19
19
|
get extension(): string | undefined;
|
|
20
20
|
/** 图片链接 */
|
package/dist/src/link/file.js
CHANGED
|
@@ -42,8 +42,10 @@ const explode = (start, end, separator, str) => {
|
|
|
42
42
|
* @classdesc `{childNodes: [AtomToken, ...ImageParameterToken]}`
|
|
43
43
|
*/
|
|
44
44
|
class FileToken extends base_1.LinkBaseToken {
|
|
45
|
-
type = 'file';
|
|
46
45
|
/* NOT FOR BROWSER END */
|
|
46
|
+
get type() {
|
|
47
|
+
return 'file';
|
|
48
|
+
}
|
|
47
49
|
/** 扩展名 */
|
|
48
50
|
get extension() {
|
|
49
51
|
return this.getTitle().extension;
|
|
@@ -7,8 +7,7 @@ import type { AtomToken, ImageParameterToken } from '../../internal';
|
|
|
7
7
|
declare type GalleryTypes = 'gallery' | 'imagemap';
|
|
8
8
|
/** 图库图片 */
|
|
9
9
|
export declare abstract class GalleryImageToken extends FileToken {
|
|
10
|
-
|
|
11
|
-
type: `${GalleryTypes}-image`;
|
|
10
|
+
get type(): `${GalleryTypes}-image`;
|
|
12
11
|
/** 图片链接 */
|
|
13
12
|
get link(): string | Title;
|
|
14
13
|
set link(value: string);
|
|
@@ -37,7 +37,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
37
37
|
exports.GalleryImageToken = void 0;
|
|
38
38
|
const lint_1 = require("../../util/lint");
|
|
39
39
|
const constants_1 = require("../../util/constants");
|
|
40
|
-
const debug_1 = require("../../util/debug");
|
|
41
40
|
const singleLine_1 = require("../../mixin/singleLine");
|
|
42
41
|
const index_1 = require("../../index");
|
|
43
42
|
const index_2 = require("../index");
|
|
@@ -59,6 +58,11 @@ let GalleryImageToken = (() => {
|
|
|
59
58
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
60
59
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
61
60
|
}
|
|
61
|
+
/** @private */
|
|
62
|
+
privateType = 'imagemap-image';
|
|
63
|
+
get type() {
|
|
64
|
+
return this.privateType;
|
|
65
|
+
}
|
|
62
66
|
/* NOT FOR BROWSER */
|
|
63
67
|
/** 图片链接 */
|
|
64
68
|
get link() {
|
|
@@ -87,7 +91,8 @@ let GalleryImageToken = (() => {
|
|
|
87
91
|
}
|
|
88
92
|
super(link, token?.toString(), config, accum);
|
|
89
93
|
this.setAttribute('bracket', false);
|
|
90
|
-
this.
|
|
94
|
+
this.privateType = `${type}-image`;
|
|
95
|
+
this.seal('privateType', true);
|
|
91
96
|
}
|
|
92
97
|
/** @private */
|
|
93
98
|
getTitle() {
|
|
@@ -106,37 +111,6 @@ let GalleryImageToken = (() => {
|
|
|
106
111
|
}
|
|
107
112
|
return errors;
|
|
108
113
|
}
|
|
109
|
-
/**
|
|
110
|
-
* 设置`#title`
|
|
111
|
-
* @param title Title对象
|
|
112
|
-
*/
|
|
113
|
-
#setName(title) {
|
|
114
|
-
this.setAttribute('title', title);
|
|
115
|
-
/* NOT FOR BROWSER */
|
|
116
|
-
this.setAttribute('name', title.title);
|
|
117
|
-
}
|
|
118
|
-
/** @private */
|
|
119
|
-
afterBuild() {
|
|
120
|
-
this.#setName(this.getTitle());
|
|
121
|
-
super.afterBuild();
|
|
122
|
-
/* NOT FOR BROWSER */
|
|
123
|
-
const /** @implements */ linkListener = (e, data) => {
|
|
124
|
-
const { prevTarget } = e;
|
|
125
|
-
if (prevTarget?.type === 'link-target') {
|
|
126
|
-
const name = prevTarget.toString(), title = this.getTitle(), { interwiki, ns, valid } = title;
|
|
127
|
-
if (!valid) {
|
|
128
|
-
(0, debug_1.undo)(e, data);
|
|
129
|
-
throw new Error(`Invalid image file name: ${name}`);
|
|
130
|
-
}
|
|
131
|
-
else if (interwiki || ns !== 6) {
|
|
132
|
-
(0, debug_1.undo)(e, data);
|
|
133
|
-
throw new Error(`Image link cannot change namespace: ${name}`);
|
|
134
|
-
}
|
|
135
|
-
this.#setName(title);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
this.addEventListener(['remove', 'insert', 'replace', 'text'], linkListener);
|
|
139
|
-
}
|
|
140
114
|
/* NOT FOR BROWSER */
|
|
141
115
|
/**
|
|
142
116
|
* @override
|
package/dist/src/link/index.d.ts
CHANGED
|
@@ -8,18 +8,17 @@ import type { Token, AtomToken } from '../../internal';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class LinkToken extends LinkBaseToken {
|
|
10
10
|
#private;
|
|
11
|
-
readonly type = "link";
|
|
12
11
|
readonly childNodes: readonly [AtomToken] | readonly [AtomToken, Token];
|
|
13
12
|
abstract get children(): [AtomToken] | [AtomToken, Token];
|
|
14
13
|
abstract get link(): Title;
|
|
15
14
|
abstract set link(link: string);
|
|
15
|
+
get type(): 'link';
|
|
16
16
|
/** 链接显示文字 */
|
|
17
17
|
get innerText(): string;
|
|
18
18
|
set innerText(text: string);
|
|
19
19
|
/** 是否链接到自身 */
|
|
20
20
|
get selfLink(): boolean;
|
|
21
21
|
set selfLink(selfLink: boolean);
|
|
22
|
-
/** @override */
|
|
23
22
|
get fragment(): string | undefined;
|
|
24
23
|
set fragment(fragment: string | undefined);
|
|
25
24
|
/** interwiki */
|