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
@@ -7,15 +7,22 @@ declare class Token extends AstElement {
7
7
  /**
8
8
  * @param {string} wikitext wikitext
9
9
  * @param {import('../../typings/token').accum} accum
10
+ * @param {acceptable} acceptable 可接受的子节点设置
10
11
  */
11
- constructor(wikitext: string, config?: import("../../typings/token").ParserConfig, halfParsed?: boolean, accum?: import('../../typings/token').accum, acceptable?: any);
12
+ constructor(wikitext: string, config?: import("../../typings/token").ParserConfig, halfParsed?: boolean, accum?: import('../../typings/token').accum, acceptable?: acceptable);
13
+ /** 所有图片,包括图库 */
14
+ get images(): Token[];
15
+ /** 所有内链、外链和自由外链 */
16
+ get links(): Token[];
17
+ /** 所有模板和模块 */
18
+ get embeds(): Token[];
12
19
  /**
13
20
  * @override
14
21
  * @template {string} T
15
22
  * @param {T} key 属性键
16
23
  * @param {TokenAttribute<T>} value 属性值
17
24
  */
18
- override setAttribute<T extends string>(key: T, value: import("../../typings/node").TokenAttribute<T>): Token;
25
+ override setAttribute<T extends string>(key: T, value: import("../../typings/node").TokenAttribute<T>): Token | this;
19
26
  /** 是否是普通节点 */
20
27
  isPlain(): boolean;
21
28
  /**
@@ -25,6 +32,7 @@ declare class Token extends AstElement {
25
32
  * @param {number} i 插入位置
26
33
  * @complexity `n`
27
34
  * @returns {T extends Token ? Token : AstText}
35
+ * @throws `RangeError` 不可插入的子节点
28
36
  */
29
37
  override insertAt<T_1 extends string | Token>(token: T_1, i?: number): T_1 extends Token ? Token : AstText;
30
38
  /**
@@ -35,6 +43,130 @@ declare class Token extends AstElement {
35
43
  * @param {boolean} selfLink 是否允许selfLink
36
44
  */
37
45
  normalizeTitle(title: string, defaultNs?: number, halfParsed?: boolean, decode?: boolean, selfLink?: boolean): import("../lib/title");
46
+ /**
47
+ * @override
48
+ * @param {number} i 移除位置
49
+ * @returns {Token}
50
+ * @complexity `n`
51
+ * @throws `Error` 不可移除的子节点
52
+ */
53
+ override removeAt(i: number): Token;
54
+ /**
55
+ * 替换为同类节点
56
+ * @param {Token} token 待替换的节点
57
+ * @complexity `n`
58
+ * @throws `Error` 不存在父节点
59
+ * @throws `Error` 待替换的节点具有不同属性
60
+ */
61
+ safeReplaceWith(token: Token): void;
62
+ /**
63
+ * 创建HTML注释
64
+ * @param {string} data 注释内容
65
+ */
66
+ createComment(data?: string): import("./nowiki/comment");
67
+ /**
68
+ * 创建标签
69
+ * @param {string} tagName 标签名
70
+ * @param {{selfClosing: boolean, closing: boolean}} options 选项
71
+ * @throws `RangeError` 非法的标签名
72
+ */
73
+ createElement(tagName: string, { selfClosing, closing }?: {
74
+ selfClosing: boolean;
75
+ closing: boolean;
76
+ }): any;
77
+ /**
78
+ * 创建纯文本节点
79
+ * @param {string} data 文本内容
80
+ */
81
+ createTextNode(data?: string): AstText;
82
+ /**
83
+ * 找到给定位置所在的节点
84
+ * @param {number} index 位置
85
+ */
86
+ caretPositionFromIndex(index: number): {
87
+ offsetNode: Token;
88
+ offset: number;
89
+ };
90
+ /**
91
+ * 找到给定位置所在的节点
92
+ * @param {number} x 列数
93
+ * @param {number} y 行数
94
+ */
95
+ caretPositionFromPoint(x: number, y: number): {
96
+ offsetNode: Token;
97
+ offset: number;
98
+ };
99
+ /**
100
+ * 找到给定位置所在的最外层节点
101
+ * @param {number} index 位置
102
+ * @throws `Error` 不是根节点
103
+ */
104
+ elementFromIndex(index: number): this;
105
+ /**
106
+ * 找到给定位置所在的最外层节点
107
+ * @param {number} x 列数
108
+ * @param {number} y 行数
109
+ */
110
+ elementFromPoint(x: number, y: number): this;
111
+ /**
112
+ * 找到给定位置所在的所有节点
113
+ * @param {number} index 位置
114
+ */
115
+ elementsFromIndex(index: number): Token[];
116
+ /**
117
+ * 找到给定位置所在的所有节点
118
+ * @param {number} x 列数
119
+ * @param {number} y 行数
120
+ */
121
+ elementsFromPoint(x: number, y: number): Token[];
122
+ /**
123
+ * 判断标题是否是跨维基链接
124
+ * @param {string} title 标题
125
+ */
126
+ isInterwiki(title: string): RegExpMatchArray;
127
+ /**
128
+ * 深拷贝所有子节点
129
+ * @complexity `n`
130
+ * @returns {(AstText|Token)[]}
131
+ */
132
+ cloneChildNodes(): (AstText | Token)[];
133
+ /**
134
+ * 深拷贝节点
135
+ * @complexity `n`
136
+ * @throws `Error` 未定义复制方法
137
+ */
138
+ cloneNode(): Token;
139
+ /**
140
+ * 获取全部章节
141
+ * @complexity `n`
142
+ */
143
+ sections(): (Token | AstText)[][];
144
+ /**
145
+ * 获取指定章节
146
+ * @param {number} n 章节序号
147
+ * @complexity `n`
148
+ */
149
+ section(n: number): (Token | AstText)[];
150
+ /**
151
+ * 获取指定的外层HTML标签
152
+ * @param {string|undefined} tag HTML标签名
153
+ * @returns {[Token, Token]}
154
+ * @complexity `n`
155
+ * @throws `RangeError` 非法的标签或空标签
156
+ */
157
+ findEnclosingHtml(tag: string | undefined): [Token, Token];
158
+ /**
159
+ * 获取全部分类
160
+ * @complexity `n`
161
+ */
162
+ getCategories(): any[][];
163
+ /**
164
+ * 重新解析单引号
165
+ * @throws `Error` 不接受QuoteToken作为子节点
166
+ */
167
+ redoQuotes(): void;
168
+ /** 解析部分魔术字 */
169
+ solveConst(): void;
38
170
  /** 生成部分Token的`name`属性 */
39
171
  afterBuild(): void;
40
172
  /**
@@ -46,8 +178,9 @@ declare class Token extends AstElement {
46
178
  #private;
47
179
  }
48
180
  declare namespace Token {
49
- export { TokenAttribute };
181
+ export { acceptable, TokenAttribute };
50
182
  }
51
183
  import AstElement = require("../lib/element");
52
184
  import AstText = require("../lib/text");
185
+ type acceptable = import('../../typings/token').acceptable;
53
186
  type TokenAttribute<T> = import('../../typings/node').TokenAttribute<T>;
@@ -4,5 +4,13 @@ export = CategoryToken;
4
4
  * @classdesc `{childNodes: [AtomToken, ?Token]}`
5
5
  */
6
6
  declare class CategoryToken extends LinkToken {
7
+ set sortkey(arg: string);
8
+ /** 分类排序关键字 */
9
+ get sortkey(): string;
10
+ /**
11
+ * 设置排序关键字
12
+ * @param {string} text 排序关键字
13
+ */
14
+ setSortkey(text: string): void;
7
15
  }
8
16
  import LinkToken = require(".");
@@ -4,6 +4,20 @@ export = FileToken;
4
4
  * @classdesc `{childNodes: [AtomToken, ...ImageParameterToken]}`
5
5
  */
6
6
  declare class FileToken extends LinkToken {
7
+ set link(arg: string | import("../../lib/title"));
8
+ /** 图片链接 */
9
+ get link(): string | import("../../lib/title");
10
+ /** 图片大小 */
11
+ get size(): {
12
+ width: string;
13
+ height: string;
14
+ };
15
+ set width(arg: string);
16
+ /** 图片宽度 */
17
+ get width(): string;
18
+ set height(arg: string);
19
+ /** 图片高度 */
20
+ get height(): string;
7
21
  /**
8
22
  * 获取所有图片参数节点
9
23
  * @returns {ImageParameterToken[]}
@@ -21,6 +35,50 @@ declare class FileToken extends LinkToken {
21
35
  getHorizAlignArgs(): ImageParameterToken[];
22
36
  /** 获取图片垂直对齐参数节点 */
23
37
  getVertAlignArgs(): ImageParameterToken[];
38
+ /**
39
+ * 获取生效的指定图片参数
40
+ * @param {string} key 参数名
41
+ * @complexity `n`
42
+ */
43
+ getArg(key: string): ImageParameterToken;
44
+ /**
45
+ * 是否具有指定图片参数
46
+ * @param {string} key 参数名
47
+ * @complexity `n`
48
+ */
49
+ hasArg(key: string): boolean;
50
+ /**
51
+ * 移除指定图片参数
52
+ * @param {string} key 参数名
53
+ * @complexity `n`
54
+ */
55
+ removeArg(key: string): void;
56
+ /**
57
+ * 获取图片参数名
58
+ * @complexity `n`
59
+ */
60
+ getKeys(): string[];
61
+ /**
62
+ * 获取指定的图片参数值
63
+ * @param {string} key 参数名
64
+ * @complexity `n`
65
+ */
66
+ getValues(key: string): (string | true)[];
67
+ /**
68
+ * 获取生效的指定图片参数值
69
+ * @param {string} key 参数名
70
+ * @complexity `n`
71
+ */
72
+ getValue(key: string): string | true;
73
+ /**
74
+ * 设置图片参数
75
+ * @param {string} key 参数名
76
+ * @param {string|boolean} value 参数值
77
+ * @complexity `n`
78
+ * @throws `RangeError` 未定义的图片参数
79
+ * @throws `SyntaxError` 非法的参数
80
+ */
81
+ setValue(key: string, value: string | boolean): void;
24
82
  #private;
25
83
  }
26
84
  import LinkToken = require(".");
@@ -11,19 +11,78 @@ declare class LinkToken extends Token {
11
11
  * @param {string} delimiter `|`
12
12
  */
13
13
  constructor(link: string, linkText: string | undefined, config?: import("../../../typings/token").ParserConfig, accum?: import('../../../typings/token').accum, delimiter?: string);
14
+ set link(arg: import("../../lib/title"));
15
+ /** 完整链接,和FileToken保持一致 */
16
+ get link(): import("../../lib/title");
17
+ set selfLink(arg: boolean);
18
+ /** 是否链接到自身 */
19
+ get selfLink(): boolean;
20
+ set fragment(arg: string);
21
+ /** fragment */
22
+ get fragment(): string;
23
+ set interwiki(arg: string);
24
+ /** interwiki */
25
+ get interwiki(): string;
26
+ /** 链接显示文字 */
27
+ get innerText(): string;
14
28
  /**
15
29
  * @override
16
30
  * @template {string} T
17
31
  * @param {T} key 属性键
18
32
  * @param {import('../../../typings/node').TokenAttribute<T>} value 属性值
19
33
  */
20
- override setAttribute<T extends string>(key: T, value: import("../../../typings/node").TokenAttribute<T>): LinkToken;
34
+ override setAttribute<T extends string>(key: T, value: import("../../../typings/node").TokenAttribute<T>): this | LinkToken;
21
35
  /**
22
36
  * @override
37
+ * @param {string} selector
23
38
  */
24
- override toString(selector: any): string;
39
+ override toString(selector: string): string;
25
40
  /** @override */
26
41
  override text(): string;
42
+ /** @override */
43
+ override print(): string;
44
+ /**
45
+ * @override
46
+ * @this {LinkToken & {constructor: typeof LinkToken}}
47
+ */
48
+ override cloneNode(this: LinkToken & {
49
+ constructor: typeof LinkToken;
50
+ }): LinkToken;
51
+ /**
52
+ * 设置链接目标
53
+ * @param {string} link 链接目标
54
+ * @throws `SyntaxError` 非法的链接目标
55
+ */
56
+ setTarget(link: string): void;
57
+ /**
58
+ * 设置跨语言链接
59
+ * @param {string} lang 语言前缀
60
+ * @param {string} link 页面标题
61
+ * @throws `SyntaxError` 非法的跨语言链接
62
+ */
63
+ setLangLink(lang: string, link: string): void;
64
+ /**
65
+ * 设置fragment
66
+ * @param {string} fragment fragment
67
+ */
68
+ setFragment(fragment: string): void;
69
+ /**
70
+ * 修改为到自身的链接
71
+ * @param {string} fragment fragment
72
+ * @throws `RangeError` 空fragment
73
+ */
74
+ asSelfLink(fragment?: string): void;
75
+ /**
76
+ * 设置链接显示文字
77
+ * @param {string} linkText 链接显示文字
78
+ * @throws `SyntaxError` 非法的链接显示文字
79
+ */
80
+ setLinkText(linkText?: string): void;
81
+ /**
82
+ * 自动生成管道符后的链接文字
83
+ * @throws `Error` 带有"#"或"%"时不可用
84
+ */
85
+ pipeTrick(): void;
27
86
  #private;
28
87
  }
29
88
  import Token = require("..");
@@ -10,5 +10,27 @@ declare class MagicLinkToken extends Token {
10
10
  * @param {import('../../typings/token').accum} accum
11
11
  */
12
12
  constructor(url: string, doubleSlash: boolean, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
13
+ set protocol(arg: string);
14
+ /** 协议 */
15
+ get protocol(): string;
16
+ set link(arg: string);
17
+ /** 和内链保持一致 */
18
+ get link(): string;
19
+ /** @override */
20
+ override cloneNode(): MagicLinkToken;
21
+ /**
22
+ * 获取网址
23
+ * @throws `Error` 非标准协议
24
+ */
25
+ getUrl(): URL;
26
+ /**
27
+ * 设置外链目标
28
+ * @param {string|URL} url 含协议的网址
29
+ * @throws `SyntaxError` 非法的自由外链目标
30
+ */
31
+ setTarget(url: string | URL): void;
32
+ /** 是否是模板或魔术字参数 */
33
+ isParamValue(): boolean;
34
+ #private;
13
35
  }
14
36
  import Token = require(".");
@@ -11,10 +11,8 @@ declare class NestedToken extends Token {
11
11
  * @param {import('../../../typings/token').accum} accum
12
12
  */
13
13
  constructor(wikitext: string | undefined, regex: RegExp, tags: string[], config?: import("../../../typings/token").ParserConfig, accum?: import('../../../typings/token').accum);
14
- /**
15
- * @override
16
- * @param {number} start 起始位置
17
- */
18
- override lint(start?: number): any;
14
+ /** @override */
15
+ override cloneNode(): any;
16
+ #private;
19
17
  }
20
18
  import Token = require("..");
@@ -11,9 +11,21 @@ declare class CommentToken extends NowikiToken {
11
11
  */
12
12
  constructor(wikitext: string, closed?: boolean, config?: import("../../../typings/token").ParserConfig, accum?: import('../../../typings/token').accum);
13
13
  closed: boolean;
14
+ /** 内部wikitext */
15
+ get innerText(): string;
16
+ /** @override */
17
+ override print(): string;
14
18
  /**
15
19
  * @override
20
+ * @param {number} start 起始位置
16
21
  */
17
- override toString(selector: any): string;
22
+ override lint(start?: number): any;
23
+ /**
24
+ * @override
25
+ * @param {string} selector
26
+ */
27
+ override toString(selector: string): string;
28
+ /** @override */
29
+ override cloneNode(): CommentToken;
18
30
  }
19
31
  import NowikiToken = require(".");
@@ -4,5 +4,14 @@ export = DdToken;
4
4
  * @classdesc `{childNodes: [AstText]}`
5
5
  */
6
6
  declare class DdToken extends NowikiToken {
7
+ /** 是否包含<dt> */
8
+ get dt(): boolean;
9
+ /** 是否包含<ul> */
10
+ get ul(): boolean;
11
+ /** 是否包含<ol> */
12
+ get ol(): boolean;
13
+ set indent(arg: number);
14
+ /** 缩进数 */
15
+ get indent(): number;
7
16
  }
8
17
  import NowikiToken = require(".");
@@ -4,9 +4,19 @@ export = DoubleUnderscoreToken;
4
4
  * @classdesc `{childNodes: [AstText]}`
5
5
  */
6
6
  declare class DoubleUnderscoreToken extends NowikiToken {
7
+ /** @override */
8
+ override print(): string;
7
9
  /**
8
10
  * @override
11
+ * @param {string} selector
9
12
  */
10
- override toString(selector: any): string;
13
+ override toString(selector: string): string;
14
+ /** @override */
15
+ override cloneNode(): DoubleUnderscoreToken;
16
+ /**
17
+ * @override
18
+ * @throws `Error` 禁止修改
19
+ */
20
+ override setText(): void;
11
21
  }
12
22
  import NowikiToken = require(".");
@@ -11,8 +11,17 @@ declare class NowikiToken extends Token {
11
11
  constructor(wikitext: string, config?: import("../../../typings/token").ParserConfig, accum?: import('../../../typings/token').accum);
12
12
  /**
13
13
  * @override
14
- * @param {number} start 起始位置
14
+ * @this {NowikiToken & {firstChild: AstText, constructor: typeof NowikiToken}}
15
15
  */
16
- override lint(start?: number): any;
16
+ override cloneNode(this: NowikiToken & {
17
+ firstChild: AstText;
18
+ constructor: typeof NowikiToken;
19
+ }): NowikiToken;
20
+ /**
21
+ * @override
22
+ * @param {string} str 新文本
23
+ */
24
+ override setText(str: string): string;
17
25
  }
18
26
  import Token = require("..");
27
+ import AstText = require("../../lib/text");
@@ -9,12 +9,5 @@ declare class QuoteToken extends NowikiToken {
9
9
  * @param {import('../../../typings/token').accum} accum
10
10
  */
11
11
  constructor(n: number, config?: import("../../../typings/token").ParserConfig, accum?: import('../../../typings/token').accum);
12
- /**
13
- * @override
14
- * @this {AstText}
15
- * @param {number} start 起始位置
16
- */
17
- override lint(this: AstText, start?: number): import("../../../typings/token").LintError[];
18
12
  }
19
13
  import NowikiToken = require(".");
20
- import AstText = require("../../lib/text");
@@ -9,9 +9,16 @@ declare class OnlyincludeToken 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
+ /** 内部wikitext */
13
+ get innerText(): string;
12
14
  /**
13
15
  * @override
16
+ * @param {string} selector
14
17
  */
15
- override toString(selector: any): string;
18
+ override toString(selector: string): string;
19
+ /** @override */
20
+ override print(): string;
21
+ /** @override */
22
+ override cloneNode(): OnlyincludeToken;
16
23
  }
17
24
  import Token = require(".");
@@ -11,14 +11,19 @@ declare class ParamTagToken extends Token {
11
11
  constructor(wikitext: 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
  * @override
20
- * @param {number} start 起始位置
23
+ * @this {ParamTagToken & {constructor: typeof ParamTagToken}}
21
24
  */
22
- override lint(start?: number): any;
25
+ override cloneNode(this: ParamTagToken & {
26
+ constructor: typeof ParamTagToken;
27
+ }): ParamTagToken;
23
28
  }
24
29
  import Token = require("..");
@@ -12,11 +12,20 @@ declare class ParameterToken extends Token {
12
12
  constructor(key: string | number, value: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum);
13
13
  /** 是否是匿名参数 */
14
14
  get anon(): boolean;
15
+ set value(arg: string);
16
+ /** getValue()的getter */
17
+ get value(): string;
18
+ /**
19
+ * 是否是重复参数
20
+ * @this {ParameterToken & {parentNode: TranscludeToken}}
21
+ */
22
+ get duplicated(): boolean;
15
23
  /**
16
24
  * @override
25
+ * @param {string} selector
17
26
  * @returns {string}
18
27
  */
19
- override toString(selector: any): string;
28
+ override toString(selector: string): string;
20
29
  /**
21
30
  * @override
22
31
  * @returns {string}
@@ -24,5 +33,43 @@ declare class ParameterToken extends Token {
24
33
  override text(): string;
25
34
  /** @override */
26
35
  override getGaps(): 1 | 0;
36
+ /** @override */
37
+ override print(): string;
38
+ /**
39
+ * 获取参数值
40
+ * @this {ParameterToken & {parentNode: TranscludeToken}}
41
+ */
42
+ getValue(this: ParameterToken & {
43
+ parentNode: import("./transclude");
44
+ }): string;
45
+ /** @override */
46
+ override cloneNode(): ParameterToken;
47
+ /**
48
+ * @override
49
+ * @param {ParameterToken} token 待替换的节点
50
+ * @complexity `n`
51
+ */
52
+ override safeReplaceWith(token: ParameterToken): void;
53
+ /**
54
+ * 设置参数值
55
+ * @this {ParameterToken & {parentNode: TranscludeToken}}
56
+ * @param {string} value 参数值
57
+ * @throws `SyntaxError` 非法的模板参数
58
+ */
59
+ setValue(this: ParameterToken & {
60
+ parentNode: import("./transclude");
61
+ }, value: string): void;
62
+ /**
63
+ * 修改参数名
64
+ * @this {ParameterToken & {parentNode: TranscludeToken}}
65
+ * @param {string} key 新参数名
66
+ * @param {boolean} force 是否无视冲突命名
67
+ * @throws `Error` 仅用于模板参数
68
+ * @throws `SyntaxError` 非法的模板参数名
69
+ * @throws `RangeError` 更名造成重复参数
70
+ */
71
+ rename(this: ParameterToken & {
72
+ parentNode: import("./transclude");
73
+ }, key: string, force: boolean): void;
27
74
  }
28
75
  import Token = require(".");
@@ -9,7 +9,12 @@ declare class SyntaxToken extends Token {
9
9
  * @param {RegExp} pattern 语法正则
10
10
  * @param {string} type Token.type
11
11
  * @param {import('../../typings/token').accum} accum
12
+ * @param {import('../../typings/token').acceptable} acceptable 可接受的子节点设置
13
+ * @throws `RangeError` 含有g修饰符的语法正则
12
14
  */
13
- constructor(wikitext: string, pattern: RegExp, type?: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum, acceptable?: any);
15
+ constructor(wikitext: string, pattern: RegExp, type?: string, config?: import("../../typings/token").ParserConfig, accum?: import('../../typings/token').accum, acceptable?: import('../../typings/token').acceptable);
16
+ /** @override */
17
+ override cloneNode(): SyntaxToken;
18
+ #private;
14
19
  }
15
20
  import Token = require(".");