wikiparser-node 0.11.0-m → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/config/.schema.json +7 -0
  2. package/config/default.json +1 -0
  3. package/config/llwiki.json +35 -0
  4. package/config/moegirl.json +44 -0
  5. package/config/zhwiki.json +466 -0
  6. package/dist/index.d.ts +4 -0
  7. package/dist/lib/element.d.ts +116 -2
  8. package/dist/lib/node.d.ts +193 -10
  9. package/dist/lib/ranges.d.ts +37 -0
  10. package/dist/lib/text.d.ts +35 -1
  11. package/dist/lib/title.d.ts +6 -0
  12. package/dist/mixin/attributeParent.d.ts +9 -0
  13. package/dist/mixin/fixedToken.d.ts +8 -0
  14. package/dist/mixin/singleLine.d.ts +8 -0
  15. package/dist/mixin/sol.d.ts +8 -0
  16. package/dist/parser/selector.d.ts +12 -0
  17. package/dist/src/arg.d.ts +30 -1
  18. package/dist/src/atom/index.d.ts +2 -1
  19. package/dist/src/attribute.d.ts +24 -1
  20. package/dist/src/attributes.d.ts +79 -0
  21. package/dist/src/charinsert.d.ts +32 -0
  22. package/dist/src/converter.d.ts +75 -1
  23. package/dist/src/converterFlags.d.ts +57 -1
  24. package/dist/src/converterRule.d.ts +47 -1
  25. package/dist/src/extLink.d.ts +41 -1
  26. package/dist/src/gallery.d.ts +15 -1
  27. package/dist/src/heading.d.ts +22 -2
  28. package/dist/src/html.d.ts +25 -2
  29. package/dist/src/imageParameter.d.ts +43 -1
  30. package/dist/src/imagemap.d.ts +12 -1
  31. package/dist/src/imagemapLink.d.ts +5 -0
  32. package/dist/src/index.d.ts +136 -3
  33. package/dist/src/link/category.d.ts +8 -0
  34. package/dist/src/link/file.d.ts +58 -0
  35. package/dist/src/link/index.d.ts +61 -2
  36. package/dist/src/magicLink.d.ts +22 -0
  37. package/dist/src/nested/index.d.ts +3 -5
  38. package/dist/src/nowiki/comment.d.ts +13 -1
  39. package/dist/src/nowiki/dd.d.ts +9 -0
  40. package/dist/src/nowiki/doubleUnderscore.d.ts +11 -1
  41. package/dist/src/nowiki/index.d.ts +11 -2
  42. package/dist/src/nowiki/quote.d.ts +0 -7
  43. package/dist/src/onlyinclude.d.ts +8 -1
  44. package/dist/src/paramTag/index.d.ts +8 -3
  45. package/dist/src/parameter.d.ts +48 -1
  46. package/dist/src/syntax.d.ts +6 -1
  47. package/dist/src/table/index.d.ts +257 -0
  48. package/dist/src/table/td.d.ts +67 -6
  49. package/dist/src/table/tr.d.ts +74 -0
  50. package/dist/src/tagPair/ext.d.ts +2 -1
  51. package/dist/src/tagPair/include.d.ts +9 -0
  52. package/dist/src/tagPair/index.d.ts +14 -1
  53. package/dist/src/transclude.d.ts +125 -1
  54. package/dist/tool/index.d.ts +420 -0
  55. package/dist/util/base.d.ts +10 -0
  56. package/dist/util/debug.d.ts +20 -0
  57. package/dist/util/diff.d.ts +8 -0
  58. package/dist/util/string.d.ts +24 -0
  59. package/index.js +256 -4
  60. package/lib/element.js +488 -6
  61. package/lib/node.js +495 -6
  62. package/lib/ranges.js +130 -0
  63. package/lib/text.js +96 -1
  64. package/lib/title.js +28 -1
  65. package/mixin/attributeParent.js +117 -0
  66. package/mixin/fixedToken.js +40 -0
  67. package/mixin/hidden.js +3 -0
  68. package/mixin/singleLine.js +31 -0
  69. package/mixin/sol.js +54 -0
  70. package/package.json +5 -2
  71. package/parser/brackets.js +1 -0
  72. package/parser/commentAndExt.js +1 -0
  73. package/parser/converter.js +1 -0
  74. package/parser/externalLinks.js +1 -0
  75. package/parser/hrAndDoubleUnderscore.js +1 -0
  76. package/parser/html.js +1 -0
  77. package/parser/links.js +5 -4
  78. package/parser/list.js +1 -0
  79. package/parser/magicLinks.js +1 -0
  80. package/parser/quotes.js +1 -0
  81. package/parser/selector.js +180 -0
  82. package/parser/table.js +1 -0
  83. package/src/arg.js +116 -2
  84. package/src/atom/hidden.js +2 -0
  85. package/src/atom/index.js +17 -0
  86. package/src/attribute.js +189 -3
  87. package/src/attributes.js +307 -4
  88. package/src/charinsert.js +97 -0
  89. package/src/converter.js +108 -2
  90. package/src/converterFlags.js +187 -0
  91. package/src/converterRule.js +183 -1
  92. package/src/extLink.js +121 -1
  93. package/src/gallery.js +54 -0
  94. package/src/hasNowiki/index.js +12 -0
  95. package/src/hasNowiki/pre.js +12 -0
  96. package/src/heading.js +54 -3
  97. package/src/html.js +118 -3
  98. package/src/imageParameter.js +164 -2
  99. package/src/imagemap.js +61 -2
  100. package/src/imagemapLink.js +13 -1
  101. package/src/index.js +530 -3
  102. package/src/link/category.js +32 -1
  103. package/src/link/file.js +157 -2
  104. package/src/link/galleryImage.js +60 -2
  105. package/src/link/index.js +270 -1
  106. package/src/magicLink.js +83 -0
  107. package/src/nested/choose.js +1 -0
  108. package/src/nested/combobox.js +1 -0
  109. package/src/nested/index.js +27 -0
  110. package/src/nested/references.js +1 -0
  111. package/src/nowiki/comment.js +25 -1
  112. package/src/nowiki/dd.js +47 -1
  113. package/src/nowiki/doubleUnderscore.js +31 -1
  114. package/src/nowiki/hr.js +20 -1
  115. package/src/nowiki/index.js +23 -1
  116. package/src/nowiki/list.js +5 -2
  117. package/src/nowiki/noinclude.js +14 -0
  118. package/src/nowiki/quote.js +14 -0
  119. package/src/onlyinclude.js +26 -1
  120. package/src/paramTag/index.js +24 -1
  121. package/src/paramTag/inputbox.js +4 -1
  122. package/src/parameter.js +147 -5
  123. package/src/syntax.js +68 -0
  124. package/src/table/index.js +941 -2
  125. package/src/table/td.js +230 -5
  126. package/src/table/tr.js +247 -2
  127. package/src/tagPair/ext.js +21 -1
  128. package/src/tagPair/include.js +24 -0
  129. package/src/tagPair/index.js +56 -2
  130. package/src/transclude.js +512 -5
  131. package/tool/index.js +1209 -0
  132. package/typings/array.d.ts +29 -0
  133. package/typings/event.d.ts +22 -0
  134. package/typings/index.d.ts +67 -0
  135. package/typings/node.d.ts +19 -0
  136. package/typings/parser.d.ts +7 -0
  137. package/typings/table.d.ts +10 -0
  138. package/typings/token.d.ts +3 -0
  139. package/typings/tool.d.ts +6 -0
  140. package/util/debug.js +73 -0
  141. package/util/string.js +51 -0
@@ -11,6 +11,20 @@ declare class AttributesToken extends Token {
11
11
  * @param {import('../../typings/token').accum} accum
12
12
  */
13
13
  constructor(attr: string, type: 'ext-attrs' | 'html-attrs' | 'table-attrs', name: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
14
+ /** getAttrs()方法的getter写法 */
15
+ get attributes(): {
16
+ [k: string]: string | boolean;
17
+ };
18
+ set className(arg: string);
19
+ /** 以字符串表示的class属性 */
20
+ get className(): string;
21
+ /** 以Set表示的class属性 */
22
+ get classList(): Set<string>;
23
+ set id(arg: string);
24
+ /** id属性 */
25
+ get id(): string;
26
+ /** 是否含有无效属性 */
27
+ get sanitized(): boolean;
14
28
  type: "ext-attrs" | "html-attrs" | "table-attrs";
15
29
  /**
16
30
  * 所有指定属性名的AttributeToken
@@ -28,6 +42,71 @@ declare class AttributesToken extends Token {
28
42
  * @param {string} key 属性键
29
43
  */
30
44
  getAttr(key: string): string | true;
45
+ /**
46
+ * @override
47
+ * @this {AttributesToken & {parentNode: HtmlToken}}
48
+ */
49
+ override print(this: AttributesToken & {
50
+ parentNode: import("./html");
51
+ }): string;
52
+ /** 清理标签属性 */
53
+ sanitize(): void;
54
+ /** @override */
55
+ override cloneNode(): AttributesToken;
56
+ /**
57
+ * 所有无效属性
58
+ * @returns {AtomToken[]}
59
+ */
60
+ getDirtyAttrs(): AtomToken[];
61
+ /**
62
+ * @override
63
+ * @param {AttributeToken} token 待插入的子节点
64
+ * @param {number} i 插入位置
65
+ * @throws `RangeError` 不是AttributeToken或标签不匹配
66
+ */
67
+ override insertAt(token: AttributeToken, i?: number): AttributeToken;
68
+ /**
69
+ * 设置标签属性
70
+ * @param {string} key 属性键
71
+ * @param {string|boolean} value 属性值
72
+ * @throws `RangeError` 扩展标签属性不能包含">"
73
+ * @throws `RangeError` 无效的属性名
74
+ */
75
+ setAttr(key: string, value: string | boolean): void;
76
+ /**
77
+ * 标签是否具有某属性
78
+ * @param {string} key 属性键
79
+ */
80
+ hasAttr(key: string): boolean;
81
+ /** 获取全部的标签属性名 */
82
+ getAttrNames(): Set<any>;
83
+ /** 标签是否具有任意属性 */
84
+ hasAttrs(): boolean;
85
+ /** 获取全部标签属性 */
86
+ getAttrs(): {
87
+ [k: string]: string | boolean;
88
+ };
89
+ /**
90
+ * 移除标签属性
91
+ * @param {string} key 属性键
92
+ */
93
+ removeAttr(key: string): void;
94
+ /**
95
+ * 开关标签属性
96
+ * @param {string} key 属性键
97
+ * @param {boolean|undefined} force 强制开启或关闭
98
+ * @throws `RangeError` 不为Boolean类型的属性值
99
+ */
100
+ toggleAttr(key: string, force: boolean | undefined): void;
101
+ /**
102
+ * @override
103
+ * @param {string} selector
104
+ */
105
+ override toString(selector: string): string;
106
+ /** @override */
107
+ override text(): string;
108
+ #private;
31
109
  }
32
110
  import Token = require(".");
33
111
  import AttributeToken = require("./attribute");
112
+ import AtomToken = require("./atom");
@@ -0,0 +1,32 @@
1
+ export = CharinsertToken;
2
+ /**
3
+ * `<charinsert>`
4
+ * @classdesc `{childNodes: [...HasNowikiToken]}`
5
+ */
6
+ declare class CharinsertToken extends Token {
7
+ /**
8
+ * @param {string} wikitext wikitext
9
+ * @param {import('../../typings/token').accum} accum
10
+ */
11
+ constructor(wikitext: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
12
+ /**
13
+ * @override
14
+ * @param {string} selector
15
+ */
16
+ override toString(selector: string): string;
17
+ /** @override */
18
+ override print(): string;
19
+ /** @override */
20
+ override cloneNode(): CharinsertToken;
21
+ /**
22
+ * 获取某一行的插入选项
23
+ * @param {number|HasNowikiToken} child 行号或子节点
24
+ */
25
+ getLineItems(child: number | HasNowikiToken): (string | string[])[];
26
+ /** 获取所有插入选项 */
27
+ getAllItems(): (string | string[])[];
28
+ /** @override */
29
+ override text(): string;
30
+ }
31
+ import Token = require(".");
32
+ import HasNowikiToken = require("./hasNowiki");
@@ -10,11 +10,19 @@ declare class ConverterToken extends Token {
10
10
  * @param {import('../../typings/token').accum} accum
11
11
  */
12
12
  constructor(flags: string[], rules: string[], config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
13
+ /**
14
+ * 是否无转换
15
+ * @this {ConverterToken & {lastChild: ConverterRuleToken}}
16
+ */
17
+ get noConvert(): boolean;
18
+ /** flags */
19
+ get flags(): Set<string>;
13
20
  /**
14
21
  * @override
22
+ * @param {string} selector
15
23
  * @returns {string}
16
24
  */
17
- override toString(selector: any): string;
25
+ override toString(selector: string): string;
18
26
  /**
19
27
  * @override
20
28
  * @returns {string}
@@ -25,5 +33,71 @@ declare class ConverterToken extends Token {
25
33
  * @param {number} i 子节点位置
26
34
  */
27
35
  override getGaps(i?: number): 1 | 0;
36
+ /** @override */
37
+ override print(): string;
38
+ /** @override */
39
+ override cloneNode(): ConverterToken;
40
+ /**
41
+ * 获取所有转换类型标记
42
+ * @this {{firstChild: ConverterFlagsToken}}
43
+ */
44
+ getAllFlags(this: {
45
+ firstChild: ConverterFlagsToken;
46
+ }): Set<string>;
47
+ /**
48
+ * 获取有效的转换类型标记
49
+ * @this {{firstChild: ConverterFlagsToken}}
50
+ */
51
+ getEffectiveFlags(this: {
52
+ firstChild: ConverterFlagsToken;
53
+ }): Set<string>;
54
+ /**
55
+ * 获取未知的转换类型标记
56
+ * @this {{firstChild: ConverterFlagsToken}}
57
+ */
58
+ getUnknownFlags(this: {
59
+ firstChild: ConverterFlagsToken;
60
+ }): Set<string>;
61
+ /**
62
+ * 是否具有某转换类型标记
63
+ * @this {{firstChild: ConverterFlagsToken}}
64
+ * @param {string} flag 转换类型标记
65
+ */
66
+ hasFlag(this: {
67
+ firstChild: ConverterFlagsToken;
68
+ }, flag: string): boolean;
69
+ /**
70
+ * 是否具有某有效的转换类型标记
71
+ * @this {{firstChild: ConverterFlagsToken}}
72
+ * @param {string} flag 转换类型标记
73
+ */
74
+ hasEffectiveFlag(this: {
75
+ firstChild: ConverterFlagsToken;
76
+ }, flag: string): boolean;
77
+ /**
78
+ * 移除转换类型标记
79
+ * @this {{firstChild: ConverterFlagsToken}}
80
+ * @param {string} flag 转换类型标记
81
+ */
82
+ removeFlag(this: {
83
+ firstChild: ConverterFlagsToken;
84
+ }, flag: string): void;
85
+ /**
86
+ * 设置转换类型标记
87
+ * @this {{firstChild: ConverterFlagsToken}}
88
+ * @param {string} flag 转换类型标记
89
+ */
90
+ setFlag(this: {
91
+ firstChild: ConverterFlagsToken;
92
+ }, flag: string): void;
93
+ /**
94
+ * 开关某转换类型标记
95
+ * @this {{firstChild: ConverterFlagsToken}}
96
+ * @param {string} flag 转换类型标记
97
+ */
98
+ toggleFlag(this: {
99
+ firstChild: ConverterFlagsToken;
100
+ }, flag: string): void;
28
101
  }
29
102
  import Token = require(".");
103
+ import ConverterFlagsToken = require("./converterFlags");
@@ -11,10 +11,13 @@ declare class ConverterFlagsToken extends Token {
11
11
  constructor(flags: string[], config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
12
12
  /**
13
13
  * @override
14
+ * @param {string} selector
14
15
  */
15
- override toString(selector: any): string;
16
+ override toString(selector: string): string;
16
17
  /** @override */
17
18
  override text(): string;
19
+ /** @override */
20
+ override print(): string;
18
21
  /**
19
22
  * 获取未知转换类型标记
20
23
  * @complexity `n`
@@ -22,6 +25,59 @@ declare class ConverterFlagsToken extends Token {
22
25
  getUnknownFlags(): Set<string>;
23
26
  /** 获取指定语言变体的转换标记 */
24
27
  getVariantFlags(): Set<string>;
28
+ /** @override */
29
+ override cloneNode(): ConverterFlagsToken;
30
+ /**
31
+ * @override
32
+ * @param {AtomToken} token 待插入的子节点
33
+ * @param {number} i 插入位置
34
+ * @complexity `n`
35
+ */
36
+ override insertAt(token: AtomToken, i?: number): AtomToken;
37
+ /** 获取所有转换类型标记 */
38
+ getAllFlags(): Set<string>;
39
+ /**
40
+ * 获取转换类型标记节点
41
+ * @param {string} flag 转换类型标记
42
+ * @returns {AtomToken[]}
43
+ * @complexity `n`
44
+ */
45
+ getFlagToken(flag: string): AtomToken[];
46
+ /**
47
+ * 获取有效转换类型标记
48
+ * @complexity `n`
49
+ */
50
+ getEffectiveFlags(): Set<string>;
51
+ /**
52
+ * 是否具有某转换类型标记
53
+ * @param {string} flag 转换类型标记
54
+ */
55
+ hasFlag(flag: string): boolean;
56
+ /**
57
+ * 是否具有某有效转换类型标记
58
+ * @param {string} flag 转换类型标记
59
+ * @complexity `n`
60
+ */
61
+ hasEffectiveFlag(flag: string): boolean;
62
+ /**
63
+ * 移除某转换类型标记
64
+ * @param {string} flag 转换类型标记
65
+ * @complexity `n²`
66
+ */
67
+ removeFlag(flag: string): void;
68
+ /**
69
+ * 设置转换类型标记
70
+ * @param {string} flag 转换类型标记
71
+ * @complexity `n`
72
+ */
73
+ setFlag(flag: string): void;
74
+ /**
75
+ * 开关转换类型标记
76
+ * @param {string} flag 转换类型标记
77
+ * @complexity `n²`
78
+ */
79
+ toggleFlag(flag: string): void;
25
80
  #private;
26
81
  }
27
82
  import Token = require(".");
83
+ import AtomToken = require("./atom");
@@ -10,11 +10,20 @@ declare class ConverterRuleToken extends Token {
10
10
  * @param {import('../../typings/token').accum} accum
11
11
  */
12
12
  constructor(rule: string, hasColon?: boolean, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
13
+ set variant(arg: string);
14
+ /** 语言变体 */
15
+ get variant(): string;
16
+ set unidirectional(arg: boolean);
17
+ /** 是否是单向转换 */
18
+ get unidirectional(): boolean;
19
+ /** 是否是双向转换 */
20
+ get bidirectional(): boolean;
13
21
  /**
14
22
  * @override
23
+ * @param {string} selector
15
24
  * @returns {string}
16
25
  */
17
- override toString(selector: any): string;
26
+ override toString(selector: string): string;
18
27
  /**
19
28
  * @override
20
29
  * @returns {string}
@@ -25,5 +34,42 @@ declare class ConverterRuleToken extends Token {
25
34
  * @param {number} i 子节点序号
26
35
  */
27
36
  override getGaps(i?: number): 1 | 2;
37
+ /** @override */
38
+ override print(): string;
39
+ /** @override */
40
+ override cloneNode(): ConverterRuleToken;
41
+ /**
42
+ * @override
43
+ * @throws `Error` 请勿手动插入子节点
44
+ */
45
+ override insertAt(): void;
46
+ /** 修改为不转换 */
47
+ noConvert(): void;
48
+ /**
49
+ * 设置转换目标
50
+ * @param {string} to 转换目标
51
+ * @throws `SyntaxError` 非法的转换目标
52
+ */
53
+ setTo(to: string): void;
54
+ /**
55
+ * 设置语言变体
56
+ * @param {string} variant 语言变体
57
+ * @throws `RangeError` 无效的语言变体
58
+ */
59
+ setVariant(variant: string): void;
60
+ /**
61
+ * 设置转换原文
62
+ * @param {string} from 转换原文
63
+ * @throws `Error` 尚未指定语言变体
64
+ * @throws `SyntaxError` 非法的转换原文
65
+ */
66
+ setFrom(from: string): void;
67
+ /**
68
+ * 修改为单向转换
69
+ * @param {string} from 转换来源
70
+ */
71
+ makeUnidirectional(from: string): void;
72
+ /** 修改为双向转换 */
73
+ makeBidirectional(): void;
28
74
  }
29
75
  import Token = require(".");
@@ -11,12 +11,52 @@ declare class ExtLinkToken extends Token {
11
11
  * @param {import('../../typings/token').accum} accum
12
12
  */
13
13
  constructor(url: string, space?: string, text?: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
14
+ /** @this {{firstChild: MagicLinkToken}} */
15
+ set protocol(arg: string);
16
+ /**
17
+ * 协议
18
+ * @this {{firstChild: MagicLinkToken}}
19
+ */
20
+ get protocol(): string;
21
+ set link(arg: string);
22
+ /**
23
+ * 和内链保持一致
24
+ * @this {{firstChild: MagicLinkToken}}
25
+ */
26
+ get link(): string;
27
+ /** 链接显示文字 */
28
+ get innerText(): string;
14
29
  /**
15
30
  * @override
31
+ * @param {string} selector
16
32
  */
17
- override toString(selector: any): string;
33
+ override toString(selector: string): string;
18
34
  /** @override */
19
35
  override text(): string;
36
+ /** @override */
37
+ override print(): string;
38
+ /** @override */
39
+ override cloneNode(): ExtLinkToken;
40
+ /**
41
+ * 获取网址
42
+ * @this {{firstChild: MagicLinkToken}}
43
+ */
44
+ getUrl(this: {
45
+ firstChild: MagicLinkToken;
46
+ }): URL;
47
+ /**
48
+ * 设置链接目标
49
+ * @param {string|URL} url 网址
50
+ * @throws `SyntaxError` 非法的外链目标
51
+ */
52
+ setTarget(url: string | URL): void;
53
+ /**
54
+ * 设置链接显示文字
55
+ * @param {string} text 链接显示文字
56
+ * @throws `SyntaxError` 非法的链接显示文字
57
+ */
58
+ setLinkText(text: string): void;
20
59
  #private;
21
60
  }
22
61
  import Token = require(".");
62
+ import MagicLinkToken = require("./magicLink");
@@ -9,11 +9,25 @@ declare class GalleryToken extends Token {
9
9
  * @param {import('../../typings/token').accum} accum
10
10
  */
11
11
  constructor(inner: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
12
+ /** 所有图片 */
13
+ get images(): this[];
12
14
  /**
13
15
  * @override
16
+ * @param {string} selector
14
17
  */
15
- override toString(selector: any): string;
18
+ override toString(selector: string): string;
16
19
  /** @override */
17
20
  override text(): string;
21
+ /** @override */
22
+ override print(): string;
23
+ /** @override */
24
+ override cloneNode(): GalleryToken;
25
+ /**
26
+ * 插入图片
27
+ * @param {string} file 图片文件名
28
+ * @param {number} i 插入位置
29
+ * @throws `SyntaxError` 非法的文件名
30
+ */
31
+ insertImage(file: string, i?: number): Token;
18
32
  }
19
33
  import Token = require(".");
@@ -10,15 +10,35 @@ declare class HeadingToken extends Token {
10
10
  * @param {import('../../typings/token').accum} accum
11
11
  */
12
12
  constructor(level: number, input: string[], config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
13
+ /** 内部wikitext */
14
+ get innerText(): string;
13
15
  /**
14
16
  * @override
17
+ * @this {{prependNewLine(): ''|'\n'} & HeadingToken}
18
+ * @param {string} selector
15
19
  * @returns {string}
16
20
  */
17
- override toString(selector: any): string;
21
+ override toString(this: {
22
+ prependNewLine(): '' | '\n';
23
+ } & HeadingToken, selector: string): string;
18
24
  /**
19
25
  * @override
26
+ * @this {HeadingToken & {prependNewLine(): ''|'\n'}}
20
27
  * @returns {string}
21
28
  */
22
- override text(): string;
29
+ override text(this: HeadingToken & {
30
+ prependNewLine(): '' | '\n';
31
+ }): string;
32
+ /** @override */
33
+ override print(): string;
34
+ /** @override */
35
+ override cloneNode(): HeadingToken;
36
+ /**
37
+ * 设置标题层级
38
+ * @param {number} n 标题层级
39
+ */
40
+ setLevel(n: number): void;
41
+ /** 移除标题后的不可见内容 */
42
+ removeTrail(): void;
23
43
  }
24
44
  import Token = require(".");
@@ -12,14 +12,23 @@ declare class HtmlToken extends Token {
12
12
  * @param {import('../../typings/token').accum} accum
13
13
  */
14
14
  constructor(name: string, attr: AttributesToken, closing: boolean, selfClosing: boolean, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
15
+ /** @throws `Error` 自闭合标签或空标签 */
16
+ set closing(arg: boolean);
15
17
  /** getter */
16
18
  get closing(): boolean;
19
+ /** @throws `Error` 闭合标签或无效自闭合标签 */
20
+ set selfClosing(arg: boolean);
21
+ /** getter */
22
+ get selfClosing(): boolean;
17
23
  /**
18
24
  * @override
25
+ * @param {string} selector
19
26
  */
20
- override toString(selector: any): string;
27
+ override toString(selector: string): string;
21
28
  /** @override */
22
29
  override text(): string;
30
+ /** @override */
31
+ override print(): string;
23
32
  /**
24
33
  * 搜索匹配的标签
25
34
  * @complexity `n`
@@ -27,7 +36,21 @@ declare class HtmlToken extends Token {
27
36
  * @throws `SyntaxError` 无效自封闭标签
28
37
  * @throws `SyntaxError` 未闭合的标签
29
38
  */
30
- findMatchingTag(): HtmlToken;
39
+ findMatchingTag(): this | HtmlToken;
40
+ /** @override */
41
+ override cloneNode(): HtmlToken;
42
+ /**
43
+ * 更换标签名
44
+ * @param {string} tag 标签名
45
+ * @throws `RangeError` 非法的HTML标签
46
+ */
47
+ replaceTag(tag: string): void;
48
+ /**
49
+ * 修复无效自封闭标签
50
+ * @complexity `n`
51
+ * @throws `Error` 无法修复无效自封闭标签
52
+ */
53
+ fix(): void;
31
54
  #private;
32
55
  }
33
56
  import Token = require(".");
@@ -9,15 +9,57 @@ declare class ImageParameterToken extends Token {
9
9
  * @param {import('../../typings/token').accum} accum
10
10
  */
11
11
  constructor(str: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
12
+ set link(arg: string | Title);
12
13
  /** 图片链接 */
13
14
  get link(): string | Title;
15
+ set value(arg: string | true);
16
+ /** getValue()的getter */
17
+ get value(): string | true;
18
+ /** 图片大小 */
19
+ get size(): {
20
+ width: string;
21
+ height: string;
22
+ };
23
+ set width(arg: string);
24
+ /** 图片宽度 */
25
+ get width(): string;
26
+ set height(arg: string);
27
+ /** 图片高度 */
28
+ get height(): string;
14
29
  /**
15
30
  * @override
31
+ * @param {string} selector
16
32
  */
17
- override toString(selector: any): string;
33
+ override toString(selector: string): string;
18
34
  /** @override */
19
35
  override text(): string;
36
+ /** @override */
37
+ override print(): string;
38
+ /** @override */
39
+ override cloneNode(): ImageParameterToken;
40
+ /**
41
+ * @override
42
+ * @template {Token} T
43
+ * @param {T} token 待插入的子节点
44
+ * @param {number} i 插入位置
45
+ * @complexity `n`
46
+ * @throws `Error` 不接受自定义输入的图片参数
47
+ */
48
+ override insertAt<T extends Token>(token: T, i?: number): T extends Token ? Token : AstText;
49
+ /**
50
+ * 获取参数值
51
+ * @complexity `n`
52
+ */
53
+ getValue(): string | true;
54
+ /**
55
+ * 设置参数值
56
+ * @param {string|boolean} value 参数值
57
+ * @complexity `n`
58
+ * @throws SyntaxError` 非法的参数值
59
+ */
60
+ setValue(value: string | boolean): void;
20
61
  #private;
21
62
  }
22
63
  import Token = require(".");
23
64
  import Title = require("../lib/title");
65
+ import AstText = require("../lib/text");
@@ -15,12 +15,23 @@ declare class ImagemapToken extends Token {
15
15
  * @returns {GalleryImageToken}
16
16
  */
17
17
  get image(): GalleryImageToken;
18
+ /**
19
+ * 链接
20
+ * @returns {ImagemapLinkToken[]}
21
+ */
22
+ get links(): ImagemapLinkToken[];
18
23
  /**
19
24
  * @override
25
+ * @param {string} selector
20
26
  */
21
- override toString(selector: any): string;
27
+ override toString(selector: string): string;
22
28
  /** @override */
23
29
  override text(): string;
30
+ /** @override */
31
+ override print(): string;
32
+ /** @override */
33
+ override cloneNode(): ImagemapToken;
24
34
  }
25
35
  import Token = require(".");
26
36
  import GalleryImageToken = require("./link/galleryImage");
37
+ import ImagemapLinkToken = require("./imagemapLink");
@@ -11,6 +11,11 @@ declare class ImagemapLinkToken extends Token {
11
11
  * @param {import('../../typings/token').accum} accum
12
12
  */
13
13
  constructor(pre: string, linkStuff: [string, string, string | Title], post: string, config: any, accum: import('../../typings/token').accum);
14
+ /**
15
+ * 内外链接
16
+ * @this {{childNodes: (LinkToken|ExtLinkToken)[]}}
17
+ */
18
+ get link(): string | Title;
14
19
  }
15
20
  import Token = require(".");
16
21
  import Title = require("../lib/title");