wikiparser-node 1.1.5 → 1.1.6
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 +9 -4
- package/dist/base.d.ts +23 -22
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -3
- package/dist/internal.d.ts +2 -2
- package/dist/lib/element.d.ts +10 -10
- package/dist/lib/element.js +3 -5
- package/dist/lib/node.d.ts +8 -8
- package/dist/lib/node.js +9 -9
- package/dist/lib/range.d.ts +2 -2
- package/dist/lib/range.js +1 -2
- package/dist/lib/ranges.d.ts +3 -3
- package/dist/lib/text.d.ts +2 -2
- package/dist/lib/title.d.ts +1 -1
- package/dist/parser/selector.js +1 -1
- package/dist/parser/table.js +6 -4
- package/dist/src/arg.d.ts +3 -3
- package/dist/src/attribute.d.ts +5 -5
- package/dist/src/attribute.js +1 -1
- package/dist/src/attributes.d.ts +5 -4
- package/dist/src/attributes.js +11 -5
- package/dist/src/converter.d.ts +3 -3
- package/dist/src/converterFlags.d.ts +3 -3
- package/dist/src/converterRule.d.ts +1 -1
- package/dist/src/extLink.d.ts +2 -2
- package/dist/src/gallery.d.ts +3 -3
- package/dist/src/gallery.js +1 -1
- package/dist/src/heading.d.ts +4 -4
- package/dist/src/hidden.d.ts +1 -1
- package/dist/src/html.d.ts +10 -11
- package/dist/src/html.js +3 -4
- package/dist/src/imageParameter.d.ts +1 -1
- package/dist/src/imageParameter.js +2 -4
- package/dist/src/imagemap.d.ts +3 -3
- package/dist/src/imagemap.js +2 -2
- package/dist/src/imagemapLink.d.ts +4 -4
- package/dist/src/index.d.ts +9 -8
- package/dist/src/index.js +11 -11
- package/dist/src/link/base.d.ts +2 -2
- package/dist/src/link/file.d.ts +7 -7
- package/dist/src/link/galleryImage.d.ts +1 -1
- package/dist/src/link/galleryImage.js +2 -2
- package/dist/src/link/index.d.ts +1 -1
- package/dist/src/magicLink.d.ts +2 -2
- package/dist/src/nested.d.ts +3 -3
- package/dist/src/nested.js +1 -1
- package/dist/src/nowiki/base.d.ts +2 -2
- package/dist/src/nowiki/comment.d.ts +1 -1
- package/dist/src/nowiki/doubleUnderscore.d.ts +3 -3
- package/dist/src/nowiki/doubleUnderscore.js +0 -1
- package/dist/src/nowiki/hr.d.ts +2 -2
- package/dist/src/nowiki/index.d.ts +1 -1
- package/dist/src/nowiki/list.d.ts +1 -1
- package/dist/src/nowiki/listBase.d.ts +1 -1
- package/dist/src/nowiki/noinclude.d.ts +1 -1
- package/dist/src/nowiki/quote.d.ts +1 -1
- package/dist/src/paramTag/index.d.ts +2 -2
- package/dist/src/parameter.d.ts +3 -3
- package/dist/src/pre.d.ts +2 -2
- package/dist/src/syntax.d.ts +1 -2
- package/dist/src/table/base.d.ts +3 -3
- package/dist/src/table/index.d.ts +9 -9
- package/dist/src/table/index.js +2 -1
- package/dist/src/table/td.d.ts +7 -6
- package/dist/src/table/tr.d.ts +1 -1
- package/dist/src/table/trBase.d.ts +5 -5
- package/dist/src/table/trBase.js +12 -4
- package/dist/src/tagPair/ext.d.ts +7 -4
- package/dist/src/tagPair/include.d.ts +2 -2
- package/dist/src/tagPair/index.d.ts +3 -3
- package/dist/src/transclude.d.ts +10 -10
- package/dist/src/transclude.js +10 -10
- package/dist/util/constants.js +1 -0
- package/package.json +4 -4
|
@@ -10,7 +10,7 @@ import type { ConverterToken, ConverterRuleToken } from '../internal';
|
|
|
10
10
|
export declare class ConverterFlagsToken extends Token {
|
|
11
11
|
#private;
|
|
12
12
|
readonly type = "converter-flags";
|
|
13
|
-
childNodes: AtomToken[];
|
|
13
|
+
readonly childNodes: AtomToken[];
|
|
14
14
|
abstract get children(): AtomToken[];
|
|
15
15
|
abstract get firstChild(): AtomToken | undefined;
|
|
16
16
|
abstract get firstElementChild(): AtomToken | undefined;
|
|
@@ -26,7 +26,7 @@ export declare class ConverterFlagsToken extends Token {
|
|
|
26
26
|
get flags(): Set<string>;
|
|
27
27
|
set flags(value: Set<string>);
|
|
28
28
|
/** @param flags 转换类型标记 */
|
|
29
|
-
constructor(flags: string[], config?: Parser.Config, accum?: Token[]);
|
|
29
|
+
constructor(flags: readonly string[], config?: Parser.Config, accum?: Token[]);
|
|
30
30
|
/** @override */
|
|
31
31
|
text(): string;
|
|
32
32
|
/** 获取未知的转换类型标记 */
|
|
@@ -56,7 +56,7 @@ export declare class ConverterFlagsToken extends Token {
|
|
|
56
56
|
* 获取转换类型标记节点
|
|
57
57
|
* @param flag 转换类型标记
|
|
58
58
|
*/
|
|
59
|
-
getFlagTokens(flag: string): AtomToken[];
|
|
59
|
+
getFlagTokens(flag: string): readonly AtomToken[];
|
|
60
60
|
/** 获取有效的转换类型标记 */
|
|
61
61
|
getEffectiveFlags(): Set<string>;
|
|
62
62
|
/**
|
|
@@ -8,7 +8,7 @@ import type { ConverterToken, ConverterFlagsToken } from '../internal';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class ConverterRuleToken extends Token {
|
|
10
10
|
readonly type = "converter-rule";
|
|
11
|
-
childNodes: [AtomToken] | [AtomToken, AtomToken] | [AtomToken, AtomToken, AtomToken];
|
|
11
|
+
readonly childNodes: [AtomToken] | [AtomToken, AtomToken] | [AtomToken, AtomToken, AtomToken];
|
|
12
12
|
abstract get children(): [AtomToken] | [AtomToken, AtomToken] | [AtomToken, AtomToken, AtomToken];
|
|
13
13
|
abstract get firstChild(): AtomToken;
|
|
14
14
|
abstract get firstElementChild(): AtomToken;
|
package/dist/src/extLink.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare const ExtLinkToken_base: (abstract new (...args: any[]) => {
|
|
|
8
8
|
link: string;
|
|
9
9
|
getUrl(): URL;
|
|
10
10
|
setTarget(url: string): void;
|
|
11
|
-
length: number;
|
|
11
|
+
readonly length: number;
|
|
12
12
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
13
13
|
text(separator?: string | undefined): string;
|
|
14
14
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
@@ -25,7 +25,7 @@ declare const ExtLinkToken_base: (abstract new (...args: any[]) => {
|
|
|
25
25
|
export declare class ExtLinkToken extends ExtLinkToken_base {
|
|
26
26
|
#private;
|
|
27
27
|
readonly type = "ext-link";
|
|
28
|
-
childNodes: [MagicLinkToken] | [MagicLinkToken, Token];
|
|
28
|
+
readonly childNodes: [MagicLinkToken] | [MagicLinkToken, Token];
|
|
29
29
|
abstract get children(): [MagicLinkToken] | [MagicLinkToken, Token];
|
|
30
30
|
abstract get lastChild(): Token;
|
|
31
31
|
abstract get lastElementChild(): Token;
|
package/dist/src/gallery.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import type { AstNodes, AstText, AttributesToken, ExtToken } from '../internal';
|
|
|
11
11
|
export declare class GalleryToken extends Token {
|
|
12
12
|
#private;
|
|
13
13
|
readonly type = "ext-inner";
|
|
14
|
-
name: 'gallery';
|
|
15
|
-
childNodes: (GalleryImageToken | HiddenToken | AstText)[];
|
|
14
|
+
readonly name: 'gallery';
|
|
15
|
+
readonly childNodes: (GalleryImageToken | HiddenToken | AstText)[];
|
|
16
16
|
abstract get children(): (GalleryImageToken | HiddenToken)[];
|
|
17
17
|
abstract get firstChild(): GalleryImageToken | HiddenToken | AstText | undefined;
|
|
18
18
|
abstract get firstElementChild(): GalleryImageToken | HiddenToken | undefined;
|
|
@@ -25,7 +25,7 @@ export declare class GalleryToken extends Token {
|
|
|
25
25
|
abstract get parentNode(): ExtToken | undefined;
|
|
26
26
|
abstract get parentElement(): ExtToken | undefined;
|
|
27
27
|
/** 所有图片 */
|
|
28
|
-
get images(): GalleryImageToken[];
|
|
28
|
+
get images(): readonly GalleryImageToken[];
|
|
29
29
|
/** @param inner 标签内部wikitext */
|
|
30
30
|
constructor(inner?: string, config?: Parser.Config, accum?: Token[]);
|
|
31
31
|
/** @override */
|
package/dist/src/gallery.js
CHANGED
|
@@ -16,7 +16,7 @@ class GalleryToken extends index_1.Token {
|
|
|
16
16
|
/* NOT FOR BROWSER */
|
|
17
17
|
/** 所有图片 */
|
|
18
18
|
get images() {
|
|
19
|
-
return this.childNodes.filter((
|
|
19
|
+
return this.childNodes.filter((child) => child.type === 'gallery-image');
|
|
20
20
|
}
|
|
21
21
|
/* NOT FOR BROWSER END */
|
|
22
22
|
/** @param inner 标签内部wikitext */
|
package/dist/src/heading.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare const HeadingToken_base: (abstract new (...args: any[]) => {
|
|
|
7
7
|
toString(omit?: Set<string> | undefined): string;
|
|
8
8
|
getAttribute<S extends string>(key: S): TokenAttributeGetter<S>;
|
|
9
9
|
text(): string;
|
|
10
|
-
length: number;
|
|
10
|
+
readonly length: number;
|
|
11
11
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
12
12
|
afterBuild(): void;
|
|
13
13
|
setAttribute<T extends string>(key: T, value: TokenAttributeSetter<T>): void;
|
|
@@ -17,7 +17,7 @@ declare const HeadingToken_base: (abstract new (...args: any[]) => {
|
|
|
17
17
|
removeAt(): never;
|
|
18
18
|
insertAt(token: string, i?: number | undefined): Parser.AstText;
|
|
19
19
|
insertAt<T_1 extends Parser.AstNodes>(token: T_1, i?: number | undefined): T_1;
|
|
20
|
-
length: number;
|
|
20
|
+
readonly length: number;
|
|
21
21
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
22
22
|
text(separator?: string | undefined): string;
|
|
23
23
|
afterBuild(): void;
|
|
@@ -35,7 +35,7 @@ declare const HeadingToken_base: (abstract new (...args: any[]) => {
|
|
|
35
35
|
export declare class HeadingToken extends HeadingToken_base {
|
|
36
36
|
#private;
|
|
37
37
|
readonly type = "heading";
|
|
38
|
-
childNodes: [Token, SyntaxToken];
|
|
38
|
+
readonly childNodes: [Token, SyntaxToken];
|
|
39
39
|
abstract get children(): [Token, SyntaxToken];
|
|
40
40
|
abstract get firstChild(): Token;
|
|
41
41
|
abstract get firstElementChild(): Token;
|
|
@@ -52,7 +52,7 @@ export declare class HeadingToken extends HeadingToken_base {
|
|
|
52
52
|
* @param level 标题层级
|
|
53
53
|
* @param input 标题文字
|
|
54
54
|
*/
|
|
55
|
-
constructor(level: number, input: [string?, string?], config?: Parser.Config, accum?: Token[]);
|
|
55
|
+
constructor(level: number, input: readonly [string?, string?], config?: Parser.Config, accum?: Token[]);
|
|
56
56
|
/** @override */
|
|
57
57
|
text(): string;
|
|
58
58
|
/** @override */
|
package/dist/src/hidden.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Token } from './index';
|
|
2
2
|
declare const HiddenToken_base: ((abstract new (...args: any[]) => {
|
|
3
3
|
text(): string;
|
|
4
|
-
length: number;
|
|
4
|
+
readonly length: number;
|
|
5
5
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
6
6
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
7
7
|
afterBuild(): void;
|
package/dist/src/html.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Token } from './index';
|
|
|
3
3
|
import type { LintError } from '../base';
|
|
4
4
|
import type { AttributesToken } from '../internal';
|
|
5
5
|
declare const HtmlToken_base: (abstract new (...args: any[]) => {
|
|
6
|
-
childNodes: Parser.AstNodes[];
|
|
6
|
+
readonly childNodes: Parser.AstNodes[];
|
|
7
7
|
readonly "__#8@#attributesChild": Parser.AttributesToken;
|
|
8
8
|
attributes: Record<string, string | true>;
|
|
9
9
|
className: string;
|
|
@@ -14,16 +14,15 @@ declare const HtmlToken_base: (abstract new (...args: any[]) => {
|
|
|
14
14
|
getAttrNames(): Set<string>;
|
|
15
15
|
getAttrs(): Record<string, string | true>;
|
|
16
16
|
setAttr(key: string, value: string | boolean): void;
|
|
17
|
-
removeAttr(key: string): void;
|
|
18
|
-
* @param name 标签名
|
|
19
|
-
* @param attr 标签属性
|
|
20
|
-
* @param closing 是否闭合
|
|
21
|
-
* @param selfClosing 是否自封闭
|
|
22
|
-
*/
|
|
17
|
+
removeAttr(key: string): void;
|
|
23
18
|
toggleAttr(key: string, force?: boolean | undefined): void;
|
|
24
|
-
length: number;
|
|
19
|
+
readonly length: number;
|
|
25
20
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
26
21
|
text(separator?: string | undefined): string;
|
|
22
|
+
/**
|
|
23
|
+
* HTML标签
|
|
24
|
+
* @classdesc `{childNodes: [AttributesToken]}`
|
|
25
|
+
*/
|
|
27
26
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
28
27
|
afterBuild(): void;
|
|
29
28
|
getAttribute<T extends string>(key: T): TokenAttributeGetter<T>;
|
|
@@ -34,7 +33,7 @@ declare const HtmlToken_base: (abstract new (...args: any[]) => {
|
|
|
34
33
|
removeAt(): never;
|
|
35
34
|
insertAt(token: string, i?: number | undefined): Parser.AstText;
|
|
36
35
|
insertAt<T_2 extends Parser.AstNodes>(token: T_2, i?: number | undefined): T_2;
|
|
37
|
-
length: number;
|
|
36
|
+
readonly length: number;
|
|
38
37
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
39
38
|
text(separator?: string | undefined): string;
|
|
40
39
|
afterBuild(): void;
|
|
@@ -52,8 +51,8 @@ declare const HtmlToken_base: (abstract new (...args: any[]) => {
|
|
|
52
51
|
export declare class HtmlToken extends HtmlToken_base {
|
|
53
52
|
#private;
|
|
54
53
|
readonly type = "html";
|
|
55
|
-
name: string;
|
|
56
|
-
childNodes: [AttributesToken];
|
|
54
|
+
readonly name: string;
|
|
55
|
+
readonly childNodes: [AttributesToken];
|
|
57
56
|
abstract get children(): [AttributesToken];
|
|
58
57
|
abstract get firstChild(): AttributesToken;
|
|
59
58
|
abstract get firstElementChild(): AttributesToken;
|
package/dist/src/html.js
CHANGED
|
@@ -158,9 +158,8 @@ class HtmlToken extends (0, attributesParent_1.attributesParent)((0, fixed_1.fix
|
|
|
158
158
|
else if (!parentNode) {
|
|
159
159
|
return undefined;
|
|
160
160
|
}
|
|
161
|
-
const { childNodes } = parentNode, i = childNodes.indexOf(this), siblings = closing
|
|
162
|
-
|
|
163
|
-
: childNodes.slice(i + 1).filter(({ type, name }) => type === 'html' && name === tagName);
|
|
161
|
+
const { childNodes } = parentNode, i = childNodes.indexOf(this), siblings = (closing ? childNodes.slice(0, i).reverse() : childNodes.slice(i + 1))
|
|
162
|
+
.filter((child) => child.type === 'html' && child.name === tagName);
|
|
164
163
|
let imbalance = closing ? -1 : 1;
|
|
165
164
|
for (const token of siblings) {
|
|
166
165
|
if (token.#closing) {
|
|
@@ -216,7 +215,7 @@ class HtmlToken extends (0, attributesParent_1.attributesParent)((0, fixed_1.fix
|
|
|
216
215
|
return;
|
|
217
216
|
}
|
|
218
217
|
const { childNodes } = parentNode, i = childNodes.indexOf(this), prevSiblings = childNodes.slice(0, i)
|
|
219
|
-
.filter((
|
|
218
|
+
.filter((child) => child.type === 'html' && child.name === tagName), imbalance = prevSiblings.reduce((acc, { closing }) => acc + (closing ? 1 : -1), 0);
|
|
220
219
|
if (imbalance < 0) {
|
|
221
220
|
this.#selfClosing = false;
|
|
222
221
|
this.#closing = true;
|
|
@@ -8,7 +8,7 @@ export declare const galleryParams: Set<string>;
|
|
|
8
8
|
export declare class ImageParameterToken extends Token {
|
|
9
9
|
#private;
|
|
10
10
|
readonly type = "image-parameter";
|
|
11
|
-
name: string;
|
|
11
|
+
readonly name: string;
|
|
12
12
|
abstract get parentNode(): FileToken | undefined;
|
|
13
13
|
abstract get parentElement(): FileToken | undefined;
|
|
14
14
|
abstract get nextSibling(): this | undefined;
|
|
@@ -36,8 +36,7 @@ function validate(key, val, config = Parser.getConfig(), halfParsed = false) {
|
|
|
36
36
|
case 'manualthumb':
|
|
37
37
|
return true;
|
|
38
38
|
default:
|
|
39
|
-
|
|
40
|
-
return !isNaN(value);
|
|
39
|
+
return !Number.isNaN(Number(value));
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
/** 图片参数 */
|
|
@@ -74,8 +73,7 @@ class ImageParameterToken extends index_1.Token {
|
|
|
74
73
|
return { width: size, height: '' };
|
|
75
74
|
}
|
|
76
75
|
const str = token.childNodes[i];
|
|
77
|
-
str.splitText(str.data.indexOf('x'));
|
|
78
|
-
str.nextSibling.splitText(1);
|
|
76
|
+
str.splitText(str.data.indexOf('x')).splitText(1);
|
|
79
77
|
return { width: (0, string_1.text)(token.childNodes.slice(0, i + 1)), height: (0, string_1.text)(token.childNodes.slice(i + 2)) };
|
|
80
78
|
}
|
|
81
79
|
return undefined;
|
package/dist/src/imagemap.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import type { AstNodes, AstText, AttributesToken, ExtToken } from '../internal';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class ImagemapToken extends Token {
|
|
13
13
|
readonly type = "ext-inner";
|
|
14
|
-
name: 'imagemap';
|
|
15
|
-
childNodes: (GalleryImageToken | NoincludeToken | ImagemapLinkToken | AstText)[];
|
|
14
|
+
readonly name: 'imagemap';
|
|
15
|
+
readonly childNodes: (GalleryImageToken | NoincludeToken | ImagemapLinkToken | AstText)[];
|
|
16
16
|
abstract get children(): (GalleryImageToken | NoincludeToken | ImagemapLinkToken)[];
|
|
17
17
|
abstract get firstChild(): NoincludeToken | GalleryImageToken | undefined;
|
|
18
18
|
abstract get firstElementChild(): NoincludeToken | GalleryImageToken | undefined;
|
|
@@ -27,7 +27,7 @@ export declare class ImagemapToken extends Token {
|
|
|
27
27
|
/** 图片 */
|
|
28
28
|
get image(): GalleryImageToken | undefined;
|
|
29
29
|
/** 链接 */
|
|
30
|
-
get links(): ImagemapLinkToken[];
|
|
30
|
+
get links(): readonly ImagemapLinkToken[];
|
|
31
31
|
/** @param inner 标签内部wikitext */
|
|
32
32
|
constructor(inner?: string, config?: Parser.Config, accum?: Token[]);
|
|
33
33
|
/** @override */
|
package/dist/src/imagemap.js
CHANGED
|
@@ -18,12 +18,12 @@ class ImagemapToken extends index_1.Token {
|
|
|
18
18
|
type = 'ext-inner';
|
|
19
19
|
/** 图片 */
|
|
20
20
|
get image() {
|
|
21
|
-
return this.childNodes.find((
|
|
21
|
+
return this.childNodes.find((child) => child.type === 'imagemap-image');
|
|
22
22
|
}
|
|
23
23
|
/* NOT FOR BROWSER */
|
|
24
24
|
/** 链接 */
|
|
25
25
|
get links() {
|
|
26
|
-
return this.childNodes.filter((
|
|
26
|
+
return this.childNodes.filter((child) => child.type === 'imagemap-link');
|
|
27
27
|
}
|
|
28
28
|
/* NOT FOR BROWSER END */
|
|
29
29
|
/** @param inner 标签内部wikitext */
|
|
@@ -9,7 +9,7 @@ declare const ImagemapLinkToken_base: ((abstract new (...args: any[]) => {
|
|
|
9
9
|
removeAt(): never;
|
|
10
10
|
insertAt(token: string, i?: number | undefined): Parser.AstText;
|
|
11
11
|
insertAt<T extends Parser.AstNodes>(token: T, i?: number | undefined): T;
|
|
12
|
-
length: number;
|
|
12
|
+
readonly length: number;
|
|
13
13
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
14
14
|
text(separator?: string | undefined): string;
|
|
15
15
|
afterBuild(): void;
|
|
@@ -22,7 +22,7 @@ declare const ImagemapLinkToken_base: ((abstract new (...args: any[]) => {
|
|
|
22
22
|
}) & (abstract new (...args: any[]) => {
|
|
23
23
|
toString(omit?: Set<string> | undefined): string;
|
|
24
24
|
text(): string;
|
|
25
|
-
length: number;
|
|
25
|
+
readonly length: number;
|
|
26
26
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
27
27
|
afterBuild(): void;
|
|
28
28
|
getAttribute<T_1 extends string>(key: T_1): TokenAttributeGetter<T_1>;
|
|
@@ -36,7 +36,7 @@ declare const ImagemapLinkToken_base: ((abstract new (...args: any[]) => {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare class ImagemapLinkToken extends ImagemapLinkToken_base {
|
|
38
38
|
readonly type = "imagemap-link";
|
|
39
|
-
childNodes: [AstText, LinkToken | ExtLinkToken, NoincludeToken];
|
|
39
|
+
readonly childNodes: [AstText, LinkToken | ExtLinkToken, NoincludeToken];
|
|
40
40
|
abstract get children(): [LinkToken | ExtLinkToken, NoincludeToken];
|
|
41
41
|
abstract get firstChild(): AstText;
|
|
42
42
|
abstract get firstElementChild(): LinkToken | ExtLinkToken;
|
|
@@ -52,6 +52,6 @@ export declare class ImagemapLinkToken extends ImagemapLinkToken_base {
|
|
|
52
52
|
* @param linkStuff 内外链接
|
|
53
53
|
* @param post 链接后的文本
|
|
54
54
|
*/
|
|
55
|
-
constructor(pre: string, linkStuff: [string, string | undefined, string | undefined] | [string, string | undefined], post: string, config?: Parser.Config, accum?: Token[]);
|
|
55
|
+
constructor(pre: string, linkStuff: readonly [string, string | undefined, string | undefined] | readonly [string, string | undefined], post: string, config?: Parser.Config, accum?: Token[]);
|
|
56
56
|
}
|
|
57
57
|
export {};
|
package/dist/src/index.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ import { AstElement } from '../lib/element';
|
|
|
4
4
|
import { AstText } from '../lib/text';
|
|
5
5
|
import type { Range } from '../lib/ranges';
|
|
6
6
|
import type { Title } from '../lib/title';
|
|
7
|
-
import type { AstNodes, IncludeToken, HtmlToken, ExtToken, TranscludeToken, CommentToken } from '../internal';
|
|
8
|
-
import type {
|
|
7
|
+
import type { AstNodes, IncludeToken, HtmlToken, ExtToken, TranscludeToken, CommentToken, FileToken } from '../internal';
|
|
8
|
+
import type { CaretPosition } from '../lib/node';
|
|
9
|
+
import type { TokenTypes } from '../util/constants';
|
|
9
10
|
declare type TagToken = IncludeToken | ExtToken | HtmlToken;
|
|
10
11
|
/**
|
|
11
12
|
* 所有节点的基类
|
|
@@ -15,11 +16,11 @@ export declare class Token extends AstElement {
|
|
|
15
16
|
#private;
|
|
16
17
|
type: TokenTypes;
|
|
17
18
|
/** 所有图片,包括图库 */
|
|
18
|
-
get images():
|
|
19
|
+
get images(): readonly FileToken[];
|
|
19
20
|
/** 所有内链、外链和自由外链 */
|
|
20
|
-
get links(): Token[];
|
|
21
|
+
get links(): readonly Token[];
|
|
21
22
|
/** 所有模板和模块 */
|
|
22
|
-
get embeds(): TranscludeToken[];
|
|
23
|
+
get embeds(): readonly TranscludeToken[];
|
|
23
24
|
/** @class */
|
|
24
25
|
constructor(wikitext?: string, config?: Parser.Config, accum?: Token[], acceptable?: Acceptable);
|
|
25
26
|
/**
|
|
@@ -103,13 +104,13 @@ export declare class Token extends AstElement {
|
|
|
103
104
|
* 找到给定位置所在的所有节点
|
|
104
105
|
* @param index 位置
|
|
105
106
|
*/
|
|
106
|
-
elementsFromIndex(index?: number): AstNodes[];
|
|
107
|
+
elementsFromIndex(index?: number): readonly AstNodes[];
|
|
107
108
|
/**
|
|
108
109
|
* 找到给定位置所在的所有节点
|
|
109
110
|
* @param x 列数
|
|
110
111
|
* @param y 行数
|
|
111
112
|
*/
|
|
112
|
-
elementsFromPoint(x: number, y: number): AstNodes[];
|
|
113
|
+
elementsFromPoint(x: number, y: number): readonly AstNodes[];
|
|
113
114
|
/**
|
|
114
115
|
* 判断标题是否是跨维基链接
|
|
115
116
|
* @param title 标题
|
|
@@ -134,7 +135,7 @@ export declare class Token extends AstElement {
|
|
|
134
135
|
*/
|
|
135
136
|
findEnclosingHtml(tag?: string): AstRange | undefined;
|
|
136
137
|
/** 获取全部分类 */
|
|
137
|
-
getCategories(): [string, string | undefined][];
|
|
138
|
+
getCategories(): readonly [string, string | undefined][];
|
|
138
139
|
/** 重新解析单引号 */
|
|
139
140
|
redoQuotes(): void;
|
|
140
141
|
/** 解析部分魔术字 */
|
package/dist/src/index.js
CHANGED
|
@@ -144,9 +144,8 @@ class Token extends element_1.AstElement {
|
|
|
144
144
|
const nodes = str.split(/[\0\x7F]/u).map((s, i) => {
|
|
145
145
|
if (i % 2 === 0) {
|
|
146
146
|
return new text_1.AstText(s);
|
|
147
|
-
// @ts-expect-error isNaN
|
|
148
147
|
}
|
|
149
|
-
else if (isNaN(s.at(-1))) {
|
|
148
|
+
else if (Number.isNaN(Number(s.at(-1)))) {
|
|
150
149
|
return this.#accum[Number(s.slice(0, -1))];
|
|
151
150
|
}
|
|
152
151
|
throw new Error(`解析错误!未正确标记的 Token:${s}`);
|
|
@@ -603,7 +602,7 @@ class Token extends element_1.AstElement {
|
|
|
603
602
|
return undefined;
|
|
604
603
|
}
|
|
605
604
|
const { childNodes } = this, headings = [...childNodes.entries()]
|
|
606
|
-
.filter((
|
|
605
|
+
.filter((entry) => entry[1].type === 'heading')
|
|
607
606
|
.map(([i, { level }]) => [i, level]), lastHeading = [-1, -1, -1, -1, -1, -1], sections = new Array(headings.length);
|
|
608
607
|
for (let i = 0; i < headings.length; i++) {
|
|
609
608
|
const [index, level] = headings[i];
|
|
@@ -644,11 +643,12 @@ class Token extends element_1.AstElement {
|
|
|
644
643
|
if (!parentNode) {
|
|
645
644
|
return undefined;
|
|
646
645
|
}
|
|
647
|
-
|
|
646
|
+
/** @ignore */
|
|
647
|
+
const isHtml = (node) => node.type === 'html', { childNodes, length } = parentNode, index = childNodes.indexOf(this);
|
|
648
648
|
let i;
|
|
649
649
|
for (i = index - 1; i >= 0; i--) {
|
|
650
|
-
const
|
|
651
|
-
if (
|
|
650
|
+
const child = childNodes[i];
|
|
651
|
+
if (isHtml(child) && (!tag || child.name === tag) && !child.selfClosing && !child.closing) {
|
|
652
652
|
break;
|
|
653
653
|
}
|
|
654
654
|
}
|
|
@@ -657,8 +657,8 @@ class Token extends element_1.AstElement {
|
|
|
657
657
|
}
|
|
658
658
|
const opening = childNodes[i];
|
|
659
659
|
for (i = index + 1; i < length; i++) {
|
|
660
|
-
const
|
|
661
|
-
if (
|
|
660
|
+
const child = childNodes[i];
|
|
661
|
+
if (isHtml(child) && child.name === opening.name && !child.selfClosing && child.closing) {
|
|
662
662
|
break;
|
|
663
663
|
}
|
|
664
664
|
}
|
|
@@ -688,7 +688,7 @@ class Token extends element_1.AstElement {
|
|
|
688
688
|
}
|
|
689
689
|
this.normalize();
|
|
690
690
|
const textNodes = [...this.childNodes.entries()]
|
|
691
|
-
.filter((
|
|
691
|
+
.filter((entry) => entry[1].type === 'text'), indices = textNodes.map(([i]) => this.getRelativeIndex(i)), token = debug_1.Shadow.run(() => {
|
|
692
692
|
const node = new Token((0, string_1.text)(textNodes.map(([, str]) => str)), this.getAttribute('config'));
|
|
693
693
|
node.setAttribute('stage', 6);
|
|
694
694
|
return node.parse(7);
|
|
@@ -707,11 +707,11 @@ class Token extends element_1.AstElement {
|
|
|
707
707
|
solveConst() {
|
|
708
708
|
const targets = this.querySelectorAll('magic-word, arg'), magicWords = new Set(['if', 'ifeq', 'switch']);
|
|
709
709
|
for (let i = targets.length - 1; i >= 0; i--) {
|
|
710
|
-
const target = targets[i], { type, name,
|
|
710
|
+
const target = targets[i], { type, name, childNodes, length } = target, [, var1, var2] = childNodes;
|
|
711
711
|
if (type === 'arg' || type === 'magic-word' && magicWords.has(name)) {
|
|
712
712
|
let replace = '';
|
|
713
713
|
if (type === 'arg') {
|
|
714
|
-
replace =
|
|
714
|
+
replace = target.default === false ? String(target) : target.default;
|
|
715
715
|
}
|
|
716
716
|
else if (name === 'if' && !var1?.getElementByTypes('magic-word, template')) {
|
|
717
717
|
replace = String(childNodes[String(var1 ?? '').trim() ? 2 : 3] ?? '').trim();
|
package/dist/src/link/base.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ import type { Title } from '../../lib/title';
|
|
|
10
10
|
export declare abstract class LinkBaseToken extends Token {
|
|
11
11
|
#private;
|
|
12
12
|
type: 'link' | 'category' | 'file' | 'gallery-image' | 'imagemap-image';
|
|
13
|
-
name: string;
|
|
14
|
-
childNodes: [AtomToken, ...Token[]];
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly childNodes: [AtomToken, ...Token[]];
|
|
15
15
|
abstract get children(): [AtomToken, ...Token[]];
|
|
16
16
|
abstract get firstChild(): AtomToken;
|
|
17
17
|
abstract get firstElementChild(): AtomToken;
|
package/dist/src/link/file.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { Token, AtomToken } from '../../internal';
|
|
|
11
11
|
export declare class FileToken extends LinkBaseToken {
|
|
12
12
|
#private;
|
|
13
13
|
readonly type: 'file' | 'gallery-image' | 'imagemap-image';
|
|
14
|
-
childNodes: [AtomToken, ...ImageParameterToken[]];
|
|
14
|
+
readonly childNodes: [AtomToken, ...ImageParameterToken[]];
|
|
15
15
|
abstract get children(): [AtomToken, ...ImageParameterToken[]];
|
|
16
16
|
abstract get lastChild(): AtomToken | ImageParameterToken;
|
|
17
17
|
abstract get lastElementChild(): AtomToken | ImageParameterToken;
|
|
@@ -42,18 +42,18 @@ export declare class FileToken extends LinkBaseToken {
|
|
|
42
42
|
/** @override */
|
|
43
43
|
lint(start?: number): LintError[];
|
|
44
44
|
/** 获取所有图片参数节点 */
|
|
45
|
-
getAllArgs(): ImageParameterToken[];
|
|
45
|
+
getAllArgs(): readonly ImageParameterToken[];
|
|
46
46
|
/**
|
|
47
47
|
* 获取指定图片参数
|
|
48
48
|
* @param key 参数名
|
|
49
49
|
*/
|
|
50
|
-
getArgs(key: string): ImageParameterToken[];
|
|
50
|
+
getArgs(key: string): readonly ImageParameterToken[];
|
|
51
51
|
/** 获取图片框架属性参数节点 */
|
|
52
|
-
getFrameArgs(): ImageParameterToken[];
|
|
52
|
+
getFrameArgs(): readonly ImageParameterToken[];
|
|
53
53
|
/** 获取图片水平对齐参数节点 */
|
|
54
|
-
getHorizAlignArgs(): ImageParameterToken[];
|
|
54
|
+
getHorizAlignArgs(): readonly ImageParameterToken[];
|
|
55
55
|
/** 获取图片垂直对齐参数节点 */
|
|
56
|
-
getVertAlignArgs(): ImageParameterToken[];
|
|
56
|
+
getVertAlignArgs(): readonly ImageParameterToken[];
|
|
57
57
|
/**
|
|
58
58
|
* 获取生效的指定图片参数
|
|
59
59
|
* @param key 参数名
|
|
@@ -75,7 +75,7 @@ export declare class FileToken extends LinkBaseToken {
|
|
|
75
75
|
* 获取指定的图片参数值
|
|
76
76
|
* @param key 参数名
|
|
77
77
|
*/
|
|
78
|
-
getValues(key: string): (string | true)[];
|
|
78
|
+
getValues(key: string): readonly (string | true)[];
|
|
79
79
|
/**
|
|
80
80
|
* 获取生效的指定图片参数值
|
|
81
81
|
* @param key 参数名
|
|
@@ -6,7 +6,7 @@ import type { AtomToken, ImageParameterToken } from '../../internal';
|
|
|
6
6
|
declare const GalleryImageToken_base: (abstract new (...args: any[]) => {
|
|
7
7
|
toString(omit?: Set<string> | undefined): string;
|
|
8
8
|
text(): string;
|
|
9
|
-
length: number;
|
|
9
|
+
readonly length: number;
|
|
10
10
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
11
11
|
afterBuild(): void;
|
|
12
12
|
getAttribute<T extends string>(key: T): TokenAttributeGetter<T>;
|
|
@@ -8,7 +8,7 @@ const singleLine_1 = require("../../mixin/singleLine");
|
|
|
8
8
|
const Parser = require("../../index");
|
|
9
9
|
const index_1 = require("../index");
|
|
10
10
|
const file_1 = require("./file");
|
|
11
|
-
const
|
|
11
|
+
const imageParameter_1 = require("../imageParameter");
|
|
12
12
|
/** 图库图片 */
|
|
13
13
|
// @ts-expect-error not implementing all abstract methods
|
|
14
14
|
class GalleryImageToken extends (0, singleLine_1.singleLine)(file_1.FileToken) {
|
|
@@ -96,7 +96,7 @@ class GalleryImageToken extends (0, singleLine_1.singleLine)(file_1.FileToken) {
|
|
|
96
96
|
* @throws `TypeError` 不可插入文本节点
|
|
97
97
|
*/
|
|
98
98
|
insertAt(child, i) {
|
|
99
|
-
if (this.type === 'gallery-image' && child.type === 'image-parameter' && !
|
|
99
|
+
if (this.type === 'gallery-image' && child.type === 'image-parameter' && !imageParameter_1.galleryParams.has(child.name)) {
|
|
100
100
|
child.setAttribute('name', 'invalid');
|
|
101
101
|
}
|
|
102
102
|
return super.insertAt(child, i);
|
package/dist/src/link/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { Token, AtomToken } from '../../internal';
|
|
|
8
8
|
export declare class LinkToken extends LinkBaseToken {
|
|
9
9
|
#private;
|
|
10
10
|
readonly type = "link";
|
|
11
|
-
childNodes: [AtomToken] | [AtomToken, Token];
|
|
11
|
+
readonly childNodes: [AtomToken] | [AtomToken, Token];
|
|
12
12
|
abstract get children(): [AtomToken] | [AtomToken, Token];
|
|
13
13
|
abstract get link(): Title;
|
|
14
14
|
abstract set link(link: Title);
|
package/dist/src/magicLink.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare const MagicLinkToken_base: (abstract new (...args: any[]) => {
|
|
|
8
8
|
getAttribute<T extends string>(key: T): TokenAttributeGetter<T>;
|
|
9
9
|
setAttribute<T_1 extends string>(key: T_1, value: TokenAttributeSetter<T_1>): void;
|
|
10
10
|
replaceChildren(...elements: (string | Parser.AstNodes)[]): void;
|
|
11
|
-
length: number;
|
|
11
|
+
readonly length: number;
|
|
12
12
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
13
13
|
text(separator?: string | undefined): string;
|
|
14
14
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
@@ -20,7 +20,7 @@ declare const MagicLinkToken_base: (abstract new (...args: any[]) => {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class MagicLinkToken extends MagicLinkToken_base {
|
|
22
22
|
type: 'free-ext-link' | 'ext-link-url';
|
|
23
|
-
childNodes: (AstText | CommentToken | IncludeToken | NoincludeToken | TranscludeToken)[];
|
|
23
|
+
readonly childNodes: (AstText | CommentToken | IncludeToken | NoincludeToken | TranscludeToken)[];
|
|
24
24
|
abstract get children(): (CommentToken | IncludeToken | NoincludeToken | TranscludeToken)[];
|
|
25
25
|
abstract get firstChild(): AstText | TranscludeToken;
|
|
26
26
|
abstract get firstElementChild(): CommentToken | IncludeToken | NoincludeToken | TranscludeToken | undefined;
|
package/dist/src/nested.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ import type { AttributesToken } from './attributes';
|
|
|
12
12
|
export declare class NestedToken extends Token {
|
|
13
13
|
#private;
|
|
14
14
|
readonly type = "ext-inner";
|
|
15
|
-
name: string;
|
|
16
|
-
childNodes: (ExtToken | NoincludeToken | CommentToken)[];
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly childNodes: (ExtToken | NoincludeToken | CommentToken)[];
|
|
17
17
|
abstract get children(): (ExtToken | NoincludeToken | CommentToken)[];
|
|
18
18
|
abstract get firstChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
19
19
|
abstract get firstElementChild(): ExtToken | NoincludeToken | CommentToken | undefined;
|
|
@@ -29,7 +29,7 @@ export declare class NestedToken extends Token {
|
|
|
29
29
|
* @param regex 内层正则
|
|
30
30
|
* @param tags 内层标签名
|
|
31
31
|
*/
|
|
32
|
-
constructor(wikitext: string | undefined, regex: RegExp, tags: string[], config?: Parser.Config, accum?: Token[]);
|
|
32
|
+
constructor(wikitext: string | undefined, regex: RegExp, tags: readonly string[], config?: Parser.Config, accum?: Token[]);
|
|
33
33
|
/** @override */
|
|
34
34
|
lint(start?: number): LintError[];
|
|
35
35
|
/**
|
package/dist/src/nested.js
CHANGED
|
@@ -6,7 +6,7 @@ declare const NowikiBaseToken_base: ((abstract new (...args: any[]) => {
|
|
|
6
6
|
removeAt(): never;
|
|
7
7
|
insertAt(token: string, i?: number | undefined): Parser.AstText;
|
|
8
8
|
insertAt<T extends Parser.AstNodes>(token: T, i?: number | undefined): T;
|
|
9
|
-
length: number;
|
|
9
|
+
readonly length: number;
|
|
10
10
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
11
11
|
text(separator?: string | undefined): string;
|
|
12
12
|
afterBuild(): void;
|
|
@@ -23,7 +23,7 @@ declare const NowikiBaseToken_base: ((abstract new (...args: any[]) => {
|
|
|
23
23
|
*/
|
|
24
24
|
export declare abstract class NowikiBaseToken extends NowikiBaseToken_base {
|
|
25
25
|
type: NowikiTypes;
|
|
26
|
-
childNodes: [AstText];
|
|
26
|
+
readonly childNodes: [AstText];
|
|
27
27
|
abstract get children(): [];
|
|
28
28
|
abstract get firstChild(): AstText;
|
|
29
29
|
abstract get firstElementChild(): undefined;
|
|
@@ -4,7 +4,7 @@ import type { LintError } from '../../base';
|
|
|
4
4
|
import type { Token } from '../index';
|
|
5
5
|
declare const CommentToken_base: ((abstract new (...args: any[]) => {
|
|
6
6
|
text(): string;
|
|
7
|
-
length: number;
|
|
7
|
+
readonly length: number;
|
|
8
8
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
9
9
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
10
10
|
afterBuild(): void;
|
|
@@ -7,14 +7,14 @@ declare const DoubleUnderscoreToken_base: (abstract new (...args: any[]) => {
|
|
|
7
7
|
getAttribute<T extends string>(key: T): TokenAttributeGetter<T>;
|
|
8
8
|
setAttribute<T_1 extends string>(key: T_1, value: TokenAttributeSetter<T_1>): void;
|
|
9
9
|
replaceChildren(...elements: (string | Parser.AstNodes)[]): void;
|
|
10
|
-
length: number;
|
|
10
|
+
readonly length: number;
|
|
11
11
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
12
12
|
text(separator?: string | undefined): string;
|
|
13
13
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
14
14
|
addEventListener(events: string | string[], listener: AstListener): void;
|
|
15
15
|
}) & ((abstract new (...args: any[]) => {
|
|
16
16
|
text(): string;
|
|
17
|
-
length: number;
|
|
17
|
+
readonly length: number;
|
|
18
18
|
toString(omit?: Set<string> | undefined, separator?: string | undefined): string;
|
|
19
19
|
insertAt(token: unknown, i?: number | undefined): unknown;
|
|
20
20
|
afterBuild(): void;
|
|
@@ -29,7 +29,7 @@ declare const DoubleUnderscoreToken_base: (abstract new (...args: any[]) => {
|
|
|
29
29
|
export declare class DoubleUnderscoreToken extends DoubleUnderscoreToken_base {
|
|
30
30
|
#private;
|
|
31
31
|
readonly type = "double-underscore";
|
|
32
|
-
name: string;
|
|
32
|
+
readonly name: string;
|
|
33
33
|
/**
|
|
34
34
|
* @param word 状态开关名
|
|
35
35
|
* @param fixed 是否固定大小写
|
|
@@ -11,7 +11,6 @@ const base_1 = require("./base");
|
|
|
11
11
|
// @ts-expect-error not implementing all abstract methods
|
|
12
12
|
class DoubleUnderscoreToken extends (0, syntax_1.syntax)((0, hidden_1.hidden)(base_1.NowikiBaseToken)) {
|
|
13
13
|
type = 'double-underscore';
|
|
14
|
-
/* NOT FOR BROWSER */
|
|
15
14
|
#fixed;
|
|
16
15
|
/* NOT FOR BROWSER END */
|
|
17
16
|
/**
|