wikiparser-node 1.4.2 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/addon/table.js +5 -1
  2. package/dist/base.d.ts +6 -1
  3. package/dist/index.d.ts +0 -2
  4. package/dist/index.js +3 -3
  5. package/dist/lib/element.d.ts +3 -2
  6. package/dist/lib/element.js +20 -13
  7. package/dist/lib/node.js +13 -10
  8. package/dist/lib/text.js +3 -3
  9. package/dist/lib/title.js +4 -12
  10. package/dist/mixin/attributesParent.d.ts +32 -2
  11. package/dist/mixin/attributesParent.js +14 -25
  12. package/dist/mixin/fixed.d.ts +2 -1
  13. package/dist/mixin/fixed.js +3 -1
  14. package/dist/mixin/flagsParent.d.ts +28 -17
  15. package/dist/mixin/flagsParent.js +12 -25
  16. package/dist/mixin/magicLinkParent.d.ts +14 -8
  17. package/dist/mixin/magicLinkParent.js +7 -8
  18. package/dist/mixin/singleLine.d.ts +2 -1
  19. package/dist/mixin/singleLine.js +3 -2
  20. package/dist/mixin/sol.d.ts +2 -4
  21. package/dist/mixin/sol.js +8 -6
  22. package/dist/mixin/syntax.d.ts +5 -2
  23. package/dist/mixin/syntax.js +14 -18
  24. package/dist/parser/links.js +1 -3
  25. package/dist/src/arg.d.ts +4 -4
  26. package/dist/src/arg.js +4 -4
  27. package/dist/src/attribute.d.ts +9 -7
  28. package/dist/src/attribute.js +271 -218
  29. package/dist/src/attributes.d.ts +3 -3
  30. package/dist/src/attributes.js +0 -1
  31. package/dist/src/converter.d.ts +7 -2
  32. package/dist/src/converter.js +113 -64
  33. package/dist/src/converterFlags.d.ts +5 -5
  34. package/dist/src/converterFlags.js +0 -1
  35. package/dist/src/converterRule.d.ts +5 -5
  36. package/dist/src/converterRule.js +0 -1
  37. package/dist/src/extLink.d.ts +7 -2
  38. package/dist/src/extLink.js +159 -110
  39. package/dist/src/gallery.d.ts +5 -5
  40. package/dist/src/gallery.js +0 -1
  41. package/dist/src/heading.d.ts +8 -8
  42. package/dist/src/heading.js +172 -125
  43. package/dist/src/html.d.ts +8 -5
  44. package/dist/src/html.js +263 -214
  45. package/dist/src/imageParameter.d.ts +2 -2
  46. package/dist/src/imageParameter.js +1 -0
  47. package/dist/src/imagemap.d.ts +5 -5
  48. package/dist/src/imagemap.js +4 -10
  49. package/dist/src/imagemapLink.d.ts +7 -4
  50. package/dist/src/imagemapLink.js +75 -26
  51. package/dist/src/index.js +3 -4
  52. package/dist/src/link/base.d.ts +2 -2
  53. package/dist/src/link/base.js +1 -4
  54. package/dist/src/link/file.d.ts +1 -1
  55. package/dist/src/link/file.js +0 -1
  56. package/dist/src/link/galleryImage.d.ts +2 -1
  57. package/dist/src/link/galleryImage.js +136 -88
  58. package/dist/src/link/index.js +0 -1
  59. package/dist/src/magicLink.d.ts +11 -3
  60. package/dist/src/magicLink.js +170 -120
  61. package/dist/src/nested.d.ts +5 -5
  62. package/dist/src/nested.js +1 -0
  63. package/dist/src/nowiki/base.d.ts +6 -2
  64. package/dist/src/nowiki/base.js +79 -28
  65. package/dist/src/nowiki/comment.d.ts +0 -2
  66. package/dist/src/nowiki/comment.js +0 -9
  67. package/dist/src/nowiki/doubleUnderscore.js +88 -38
  68. package/dist/src/nowiki/hr.d.ts +1 -4
  69. package/dist/src/nowiki/hr.js +53 -4
  70. package/dist/src/nowiki/index.d.ts +2 -2
  71. package/dist/src/nowiki/index.js +1 -0
  72. package/dist/src/nowiki/list.d.ts +1 -4
  73. package/dist/src/nowiki/list.js +88 -39
  74. package/dist/src/nowiki/listBase.d.ts +1 -1
  75. package/dist/src/nowiki/listBase.js +52 -2
  76. package/dist/src/nowiki/quote.d.ts +3 -3
  77. package/dist/src/nowiki/quote.js +102 -54
  78. package/dist/src/paramTag/index.d.ts +5 -5
  79. package/dist/src/paramTag/index.js +2 -1
  80. package/dist/src/parameter.d.ts +11 -8
  81. package/dist/src/parameter.js +225 -176
  82. package/dist/src/pre.d.ts +5 -5
  83. package/dist/src/pre.js +1 -0
  84. package/dist/src/syntax.d.ts +6 -0
  85. package/dist/src/syntax.js +74 -23
  86. package/dist/src/table/base.d.ts +6 -3
  87. package/dist/src/table/base.js +100 -49
  88. package/dist/src/table/index.d.ts +6 -3
  89. package/dist/src/table/index.js +5 -9
  90. package/dist/src/table/td.d.ts +9 -5
  91. package/dist/src/table/td.js +270 -217
  92. package/dist/src/table/tr.d.ts +4 -4
  93. package/dist/src/table/tr.js +1 -0
  94. package/dist/src/tagPair/ext.d.ts +6 -3
  95. package/dist/src/tagPair/ext.js +168 -118
  96. package/dist/src/tagPair/include.d.ts +2 -4
  97. package/dist/src/tagPair/include.js +0 -8
  98. package/dist/src/tagPair/index.d.ts +1 -1
  99. package/dist/src/tagPair/index.js +115 -66
  100. package/dist/src/transclude.d.ts +3 -3
  101. package/dist/src/transclude.js +4 -9
  102. package/dist/util/debug.js +0 -2
  103. package/package.json +3 -3
@@ -1,4 +1,38 @@
1
1
  "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
2
36
  Object.defineProperty(exports, "__esModule", { value: true });
3
37
  exports.ConverterToken = void 0;
4
38
  const string_1 = require("../util/string");
@@ -13,73 +47,88 @@ const converterRule_1 = require("./converterRule");
13
47
  * 转换
14
48
  * @classdesc `{childNodes: [ConverterFlagsToken, ...ConverterRuleToken]}`
15
49
  */
16
- class ConverterToken extends (0, flagsParent_1.flagsParent)(index_2.Token) {
17
- type = 'converter';
18
- /* NOT FOR BROWSER */
19
- /** 是否不转换 */
20
- get noConvert() {
21
- return this.hasFlag('R') || this.length === 2 && this.lastChild.length === 1;
22
- }
23
- /* NOT FOR BROWSER END */
24
- /**
25
- * @param flags 转换类型标记
26
- * @param rules 转换规则
27
- */
28
- constructor(flags, rules, config = index_1.default.getConfig(), accum = []) {
29
- super(undefined, config, accum);
30
- // @ts-expect-error abstract class
31
- this.append(new converterFlags_1.ConverterFlagsToken(flags, config, accum));
32
- const [firstRule] = rules, hasColon = firstRule.includes(':'),
33
- // @ts-expect-error abstract class
34
- firstRuleToken = new converterRule_1.ConverterRuleToken(firstRule, hasColon, config, accum);
35
- if (hasColon && firstRuleToken.length === 1) {
36
- // @ts-expect-error abstract class
37
- this.insertAt(new converterRule_1.ConverterRuleToken(rules.join(';'), false, config, accum));
50
+ let ConverterToken = (() => {
51
+ let _classDecorators = [flagsParent_1.flagsParent];
52
+ let _classDescriptor;
53
+ let _classExtraInitializers = [];
54
+ let _classThis;
55
+ let _classSuper = index_2.Token;
56
+ var ConverterToken = class extends _classSuper {
57
+ static { _classThis = this; }
58
+ static {
59
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
61
+ ConverterToken = _classThis = _classDescriptor.value;
62
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
+ __runInitializers(_classThis, _classExtraInitializers);
38
64
  }
39
- else {
40
- this.append(firstRuleToken,
65
+ type = 'converter';
66
+ /** 是否不转换 */
67
+ get noConvert() {
68
+ return this.hasFlag('R') || this.length === 2 && this.lastChild.length === 1;
69
+ }
70
+ /* NOT FOR BROWSER END */
71
+ /**
72
+ * @param flags 转换类型标记
73
+ * @param rules 转换规则
74
+ */
75
+ constructor(flags, rules, config = index_1.default.getConfig(), accum = []) {
76
+ super(undefined, config, accum);
77
+ // @ts-expect-error abstract class
78
+ this.append(new converterFlags_1.ConverterFlagsToken(flags, config, accum));
79
+ const [firstRule] = rules, hasColon = firstRule.includes(':'),
41
80
  // @ts-expect-error abstract class
42
- ...rules.slice(1).map(rule => new converterRule_1.ConverterRuleToken(rule, true, config, accum)));
81
+ firstRuleToken = new converterRule_1.ConverterRuleToken(firstRule, hasColon, config, accum);
82
+ if (hasColon && firstRuleToken.length === 1) {
83
+ // @ts-expect-error abstract class
84
+ this.insertAt(new converterRule_1.ConverterRuleToken(rules.join(';'), false, config, accum));
85
+ }
86
+ else {
87
+ this.append(firstRuleToken,
88
+ // @ts-expect-error abstract class
89
+ ...rules.slice(1).map(rule => new converterRule_1.ConverterRuleToken(rule, true, config, accum)));
90
+ }
91
+ /* NOT FOR BROWSER */
92
+ this.protectChildren(0);
93
+ }
94
+ /** @private */
95
+ toString() {
96
+ const { childNodes: [flags, ...rules] } = this;
97
+ return `-{${String(flags)}${flags.length > 0 ? '|' : ''}${rules.map(String).join(';')}}-`;
98
+ }
99
+ /** @override */
100
+ text() {
101
+ const { childNodes: [flags, ...rules] } = this;
102
+ return `-{${flags.text()}|${(0, string_1.text)(rules, ';')}}-`;
103
+ }
104
+ /** @private */
105
+ getAttribute(key) {
106
+ return key === 'padding' ? 2 : super.getAttribute(key);
107
+ }
108
+ /** @private */
109
+ getGaps(i) {
110
+ return i || this.firstChild.length > 0 ? 1 : 0;
111
+ }
112
+ /** @override */
113
+ print() {
114
+ const { childNodes: [flags, ...rules] } = this;
115
+ return `<span class="wpb-converter">-{${flags.print()}${flags.length > 0 ? '|' : ''}${(0, string_1.print)(rules, { sep: ';' })}}-</span>`;
43
116
  }
44
117
  /* NOT FOR BROWSER */
45
- this.protectChildren(0);
46
- }
47
- /** @private */
48
- toString() {
49
- const { childNodes: [flags, ...rules] } = this;
50
- return `-{${String(flags)}${flags.length > 0 ? '|' : ''}${rules.map(String).join(';')}}-`;
51
- }
52
- /** @override */
53
- text() {
54
- const { childNodes: [flags, ...rules] } = this;
55
- return `-{${flags.text()}|${(0, string_1.text)(rules, ';')}}-`;
56
- }
57
- /** @private */
58
- getAttribute(key) {
59
- return key === 'padding' ? 2 : super.getAttribute(key);
60
- }
61
- /** @private */
62
- getGaps(i) {
63
- return i || this.firstChild.length > 0 ? 1 : 0;
64
- }
65
- /** @override */
66
- print() {
67
- const { childNodes: [flags, ...rules] } = this;
68
- return `<span class="wpb-converter">-{${flags.print()}${flags.length > 0 ? '|' : ''}${(0, string_1.print)(rules, { sep: ';' })}}-</span>`;
69
- }
70
- /* NOT FOR BROWSER */
71
- /** @override */
72
- cloneNode() {
73
- const [flags, ...rules] = this.cloneChildNodes();
74
- return debug_1.Shadow.run(() => {
75
- // @ts-expect-error abstract class
76
- const token = new ConverterToken([], [''], this.getAttribute('config'));
77
- token.firstChild.safeReplaceWith(flags);
78
- token.removeAt(1);
79
- token.append(...rules);
80
- return token;
81
- });
82
- }
83
- }
118
+ /** @override */
119
+ cloneNode() {
120
+ const [flags, ...rules] = this.cloneChildNodes();
121
+ return debug_1.Shadow.run(() => {
122
+ // @ts-expect-error abstract class
123
+ const token = new ConverterToken([], [''], this.getAttribute('config'));
124
+ token.firstChild.safeReplaceWith(flags);
125
+ token.removeAt(1);
126
+ token.append(...rules);
127
+ return token;
128
+ });
129
+ }
130
+ };
131
+ return ConverterToken = _classThis;
132
+ })();
84
133
  exports.ConverterToken = ConverterToken;
85
134
  constants_1.classes['ConverterToken'] = __filename;
@@ -11,16 +11,16 @@ export declare abstract class ConverterFlagsToken extends Token {
11
11
  #private;
12
12
  readonly type = "converter-flags";
13
13
  readonly childNodes: readonly AtomToken[];
14
- abstract get children(): AtomToken[];
15
14
  abstract get firstChild(): AtomToken | undefined;
16
- abstract get firstElementChild(): AtomToken | undefined;
17
15
  abstract get lastChild(): AtomToken | undefined;
18
- abstract get lastElementChild(): AtomToken | undefined;
19
16
  abstract get parentNode(): ConverterToken | undefined;
20
- abstract get parentElement(): ConverterToken | undefined;
21
17
  abstract get previousSibling(): undefined;
22
- abstract get previousElementSibling(): undefined;
23
18
  abstract get nextSibling(): ConverterRuleToken | undefined;
19
+ abstract get children(): AtomToken[];
20
+ abstract get firstElementChild(): AtomToken | undefined;
21
+ abstract get lastElementChild(): AtomToken | undefined;
22
+ abstract get parentElement(): ConverterToken | undefined;
23
+ abstract get previousElementSibling(): undefined;
24
24
  abstract get nextElementSibling(): ConverterRuleToken | undefined;
25
25
  /** 所有转换类型标记 */
26
26
  get flags(): Set<string>;
@@ -15,7 +15,6 @@ const definedFlags = new Set(['A', 'T', 'R', 'D', '-', 'H', 'N']);
15
15
  class ConverterFlagsToken extends index_2.Token {
16
16
  type = 'converter-flags';
17
17
  #flags;
18
- /* NOT FOR BROWSER */
19
18
  /** 所有转换类型标记 */
20
19
  get flags() {
21
20
  return this.getAllFlags();
@@ -9,16 +9,16 @@ import type { ConverterToken, ConverterFlagsToken } from '../internal';
9
9
  export declare abstract class ConverterRuleToken extends Token {
10
10
  readonly type = "converter-rule";
11
11
  readonly childNodes: readonly [AtomToken] | readonly [AtomToken, AtomToken] | readonly [AtomToken, AtomToken, AtomToken];
12
- abstract get children(): [AtomToken] | [AtomToken, AtomToken] | [AtomToken, AtomToken, AtomToken];
13
12
  abstract get firstChild(): AtomToken;
14
- abstract get firstElementChild(): AtomToken;
15
13
  abstract get lastChild(): AtomToken;
16
- abstract get lastElementChild(): AtomToken;
17
14
  abstract get parentNode(): ConverterToken | undefined;
18
- abstract get parentElement(): ConverterToken | undefined;
19
15
  abstract get previousSibling(): ConverterFlagsToken | this;
20
- abstract get previousElementSibling(): ConverterFlagsToken | this;
21
16
  abstract get nextSibling(): this | undefined;
17
+ abstract get children(): [AtomToken] | [AtomToken, AtomToken] | [AtomToken, AtomToken, AtomToken];
18
+ abstract get firstElementChild(): AtomToken;
19
+ abstract get lastElementChild(): AtomToken;
20
+ abstract get parentElement(): ConverterToken | undefined;
21
+ abstract get previousElementSibling(): ConverterFlagsToken | this;
22
22
  abstract get nextElementSibling(): this | undefined;
23
23
  /** 语言变体 */
24
24
  get variant(): string;
@@ -12,7 +12,6 @@ const atom_1 = require("./atom");
12
12
  */
13
13
  class ConverterRuleToken extends index_2.Token {
14
14
  type = 'converter-rule';
15
- /* NOT FOR BROWSER */
16
15
  /** 语言变体 */
17
16
  get variant() {
18
17
  return this.childNodes[this.length - 2]?.text().trim() ?? '';
@@ -5,12 +5,18 @@ import type { LintError } from '../base';
5
5
  import type { MagicLinkParentBase } from '../mixin/magicLinkParent';
6
6
  export interface ExtLinkToken extends MagicLinkParentBase {
7
7
  }
8
+ /**
9
+ * 外链
10
+ * @classdesc `{childNodes: [MagicLinkToken, ?Token]}`
11
+ */
8
12
  export declare abstract class ExtLinkToken extends Token {
9
13
  #private;
10
14
  readonly type = "ext-link";
11
15
  readonly childNodes: readonly [MagicLinkToken] | readonly [MagicLinkToken, Token];
12
- abstract get children(): [MagicLinkToken] | [MagicLinkToken, Token];
16
+ abstract get firstChild(): MagicLinkToken;
13
17
  abstract get lastChild(): Token;
18
+ abstract get children(): [MagicLinkToken] | [MagicLinkToken, Token];
19
+ abstract get firstElementChild(): MagicLinkToken;
14
20
  abstract get lastElementChild(): Token;
15
21
  /** 链接显示文字 */
16
22
  get innerText(): string;
@@ -35,4 +41,3 @@ export declare abstract class ExtLinkToken extends Token {
35
41
  */
36
42
  setLinkText(str: string): void;
37
43
  }
38
- export {};
@@ -1,4 +1,38 @@
1
1
  "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
2
36
  Object.defineProperty(exports, "__esModule", { value: true });
3
37
  exports.ExtLinkToken = void 0;
4
38
  const constants_1 = require("../util/constants");
@@ -13,125 +47,140 @@ const magicLink_1 = require("./magicLink");
13
47
  * 外链
14
48
  * @classdesc `{childNodes: [MagicLinkToken, ?Token]}`
15
49
  */
16
- class ExtLinkToken extends (0, magicLinkParent_1.magicLinkParent)(index_2.Token) {
17
- type = 'ext-link';
18
- #space;
19
- /* NOT FOR BROWSER */
20
- /** 链接显示文字 */
21
- get innerText() {
22
- return this.length > 1
23
- ? this.lastChild.text()
24
- : `[${this.getRootNode().querySelectorAll('ext-link[childElementCount=1]').indexOf(this) + 1}]`;
25
- }
26
- set innerText(text) {
27
- this.setLinkText(text);
28
- }
29
- /* NOT FOR BROWSER END */
30
- /**
31
- * @param url 网址
32
- * @param space 空白字符
33
- * @param text 链接文字
34
- */
35
- constructor(url, space = '', text = '', config = index_1.default.getConfig(), accum = []) {
36
- super(undefined, config, accum, {
37
- MagicLinkToken: 0, Token: 1,
38
- });
39
- // @ts-expect-error abstract class
40
- this.insertAt(new magicLink_1.MagicLinkToken(url, true, config, accum));
41
- this.#space = space;
42
- if (text) {
43
- const inner = new index_2.Token(text, config, accum, {
44
- 'Stage-7': ':', ConverterToken: ':',
45
- });
46
- inner.type = 'ext-link-text';
47
- inner.setAttribute('stage', constants_1.MAX_STAGE - 1);
48
- this.insertAt(inner);
50
+ let ExtLinkToken = (() => {
51
+ let _classDecorators = [magicLinkParent_1.magicLinkParent];
52
+ let _classDescriptor;
53
+ let _classExtraInitializers = [];
54
+ let _classThis;
55
+ let _classSuper = index_2.Token;
56
+ var ExtLinkToken = class extends _classSuper {
57
+ static { _classThis = this; }
58
+ static {
59
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
61
+ ExtLinkToken = _classThis = _classDescriptor.value;
62
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
+ __runInitializers(_classThis, _classExtraInitializers);
49
64
  }
50
- /* NOT FOR BROWSER */
51
- this.protectChildren(0);
52
- }
53
- /** @private */
54
- toString() {
55
- if (this.length === 1) {
56
- return `[${super.toString()}${this.#space}]`;
65
+ type = 'ext-link';
66
+ #space;
67
+ /** 链接显示文字 */
68
+ get innerText() {
69
+ return this.length > 1
70
+ ? this.lastChild.text()
71
+ : `[${this.getRootNode().querySelectorAll('ext-link[childElementCount=1]').indexOf(this) + 1}]`;
57
72
  }
58
- /* NOT FOR BROWSER */
59
- this.#correct();
60
- (0, string_1.normalizeSpace)(this.lastChild);
61
- /* NOT FOR BROWSER END */
62
- return `[${super.toString(this.#space)}]`;
63
- }
64
- /** @override */
65
- text() {
66
- /* NOT FOR BROWSER */
67
- (0, string_1.normalizeSpace)(this.childNodes[1]);
68
- /* NOT FOR BROWSER END */
69
- return `[${super.text(' ')}]`;
70
- }
71
- /** @private */
72
- getAttribute(key) {
73
- return key === 'padding' ? 1 : super.getAttribute(key);
74
- }
75
- /** @private */
76
- getGaps() {
77
- /* NOT FOR BROWSER */
78
- this.#correct();
79
- /* NOT FOR BROWSER END */
80
- return this.#space.length;
81
- }
82
- /** @override */
83
- lint(start = this.getAbsoluteIndex()) {
84
- const errors = super.lint(start);
85
- if (this.length === 1 && this.closest('heading-title')) {
86
- errors.push((0, lint_1.generateForSelf)(this, { start }, 'variable anchor in a section header'));
73
+ set innerText(text) {
74
+ this.setLinkText(text);
87
75
  }
88
- return errors;
89
- }
90
- /** @override */
91
- print() {
92
- return super.print(this.length === 1 ? { pre: '[', post: `${this.#space}]` } : { pre: '[', sep: this.#space, post: ']' });
93
- }
94
- /* NOT FOR BROWSER */
95
- /** @override */
96
- cloneNode() {
97
- const [url, text] = this.cloneChildNodes();
98
- return debug_1.Shadow.run(() => {
76
+ /* NOT FOR BROWSER END */
77
+ /**
78
+ * @param url 网址
79
+ * @param space 空白字符
80
+ * @param text 链接文字
81
+ */
82
+ constructor(url, space = '', text = '', config = index_1.default.getConfig(), accum = []) {
83
+ super(undefined, config, accum, {
84
+ MagicLinkToken: 0, Token: 1,
85
+ });
99
86
  // @ts-expect-error abstract class
100
- const token = new ExtLinkToken(undefined, '', '', this.getAttribute('config'));
101
- token.firstChild.safeReplaceWith(url);
87
+ this.insertAt(new magicLink_1.MagicLinkToken(url, true, config, accum));
88
+ this.#space = space;
102
89
  if (text) {
103
- token.insertAt(text);
90
+ const inner = new index_2.Token(text, config, accum, {
91
+ 'Stage-7': ':', ConverterToken: ':',
92
+ });
93
+ inner.type = 'ext-link-text';
94
+ inner.setAttribute('stage', constants_1.MAX_STAGE - 1);
95
+ this.insertAt(inner);
104
96
  }
105
- return token;
106
- });
107
- }
108
- /** 修正空白字符 */
109
- #correct() {
110
- if (!this.#space
111
- && this.length > 1
112
- // 都替换成`<`肯定不对,但无妨
113
- && /^[^[\]<>"{\0-\x1F\x7F\p{Zs}\uFFFD]/u.test(this.lastChild.text().replace(/&[lg]t;/u, '<'))) {
114
- this.#space = ' ';
97
+ /* NOT FOR BROWSER */
98
+ this.protectChildren(0);
115
99
  }
116
- }
117
- /**
118
- * 设置链接显示文字
119
- * @param str 链接显示文字
120
- */
121
- setLinkText(str) {
122
- const root = index_1.default.parse(str, this.getAttribute('include'), 7, this.getAttribute('config'));
123
- if (this.length === 1) {
124
- root.type = 'ext-link-text';
125
- root.setAttribute('acceptable', {
126
- 'Stage-7': ':', ConverterToken: ':',
100
+ /** @private */
101
+ toString() {
102
+ if (this.length === 1) {
103
+ return `[${super.toString()}${this.#space}]`;
104
+ }
105
+ /* NOT FOR BROWSER */
106
+ this.#correct();
107
+ (0, string_1.normalizeSpace)(this.lastChild);
108
+ /* NOT FOR BROWSER END */
109
+ return `[${super.toString(this.#space)}]`;
110
+ }
111
+ /** @override */
112
+ text() {
113
+ /* NOT FOR BROWSER */
114
+ (0, string_1.normalizeSpace)(this.childNodes[1]);
115
+ /* NOT FOR BROWSER END */
116
+ return `[${super.text(' ')}]`;
117
+ }
118
+ /** @private */
119
+ getAttribute(key) {
120
+ return key === 'padding' ? 1 : super.getAttribute(key);
121
+ }
122
+ /** @private */
123
+ getGaps() {
124
+ /* NOT FOR BROWSER */
125
+ this.#correct();
126
+ /* NOT FOR BROWSER END */
127
+ return this.#space.length;
128
+ }
129
+ /** @override */
130
+ lint(start = this.getAbsoluteIndex()) {
131
+ const errors = super.lint(start);
132
+ if (this.length === 1 && this.closest('heading-title')) {
133
+ errors.push((0, lint_1.generateForSelf)(this, { start }, 'variable anchor in a section header'));
134
+ }
135
+ return errors;
136
+ }
137
+ /** @override */
138
+ print() {
139
+ return super.print(this.length === 1 ? { pre: '[', post: `${this.#space}]` } : { pre: '[', sep: this.#space, post: ']' });
140
+ }
141
+ /* NOT FOR BROWSER */
142
+ /** @override */
143
+ cloneNode() {
144
+ const [url, text] = this.cloneChildNodes();
145
+ return debug_1.Shadow.run(() => {
146
+ // @ts-expect-error abstract class
147
+ const token = new ExtLinkToken(undefined, '', '', this.getAttribute('config'));
148
+ token.firstChild.safeReplaceWith(url);
149
+ if (text) {
150
+ token.insertAt(text);
151
+ }
152
+ return token;
127
153
  });
128
- this.insertAt(root);
129
154
  }
130
- else {
131
- this.lastChild.replaceChildren(...root.childNodes);
155
+ /** 修正空白字符 */
156
+ #correct() {
157
+ if (!this.#space
158
+ && this.length > 1
159
+ // 都替换成`<`肯定不对,但无妨
160
+ && /^[^[\]<>"{\0-\x1F\x7F\p{Zs}\uFFFD]/u.test(this.lastChild.text().replace(/&[lg]t;/u, '<'))) {
161
+ this.#space = ' ';
162
+ }
132
163
  }
133
- this.#space ||= ' ';
134
- }
135
- }
164
+ /**
165
+ * 设置链接显示文字
166
+ * @param str 链接显示文字
167
+ */
168
+ setLinkText(str) {
169
+ const root = index_1.default.parse(str, this.getAttribute('include'), 7, this.getAttribute('config'));
170
+ if (this.length === 1) {
171
+ root.type = 'ext-link-text';
172
+ root.setAttribute('acceptable', {
173
+ 'Stage-7': ':', ConverterToken: ':',
174
+ });
175
+ this.insertAt(root);
176
+ }
177
+ else {
178
+ this.lastChild.replaceChildren(...root.childNodes);
179
+ }
180
+ this.#space ||= ' ';
181
+ }
182
+ };
183
+ return ExtLinkToken = _classThis;
184
+ })();
136
185
  exports.ExtLinkToken = ExtLinkToken;
137
186
  constants_1.classes['ExtLinkToken'] = __filename;
@@ -13,16 +13,16 @@ export declare abstract class GalleryToken extends Token {
13
13
  readonly type = "ext-inner";
14
14
  readonly name: 'gallery';
15
15
  readonly childNodes: readonly (GalleryImageToken | NoincludeToken | AstText)[];
16
- abstract get children(): (GalleryImageToken | NoincludeToken)[];
17
16
  abstract get firstChild(): GalleryImageToken | NoincludeToken | AstText | undefined;
18
- abstract get firstElementChild(): GalleryImageToken | NoincludeToken | undefined;
19
17
  abstract get lastChild(): GalleryImageToken | NoincludeToken | AstText | undefined;
20
- abstract get lastElementChild(): GalleryImageToken | NoincludeToken | undefined;
21
18
  abstract get nextSibling(): undefined;
22
- abstract get nextElementSibling(): undefined;
23
19
  abstract get previousSibling(): AttributesToken;
24
- abstract get previousElementSibling(): AttributesToken;
25
20
  abstract get parentNode(): ExtToken | undefined;
21
+ abstract get children(): (GalleryImageToken | NoincludeToken)[];
22
+ abstract get firstElementChild(): GalleryImageToken | NoincludeToken | undefined;
23
+ abstract get lastElementChild(): GalleryImageToken | NoincludeToken | undefined;
24
+ abstract get nextElementSibling(): undefined;
25
+ abstract get previousElementSibling(): AttributesToken;
26
26
  abstract get parentElement(): ExtToken | undefined;
27
27
  /** 所有图片 */
28
28
  get images(): GalleryImageToken[];
@@ -13,7 +13,6 @@ const noinclude_1 = require("./nowiki/noinclude");
13
13
  */
14
14
  class GalleryToken extends index_2.Token {
15
15
  type = 'ext-inner';
16
- /* NOT FOR BROWSER */
17
16
  /** 所有图片 */
18
17
  get images() {
19
18
  return this.childNodes.filter((0, debug_1.isToken)('gallery-image'));
@@ -1,18 +1,19 @@
1
1
  import Parser from '../index';
2
2
  import { Token } from './index';
3
3
  import { SyntaxToken } from './syntax';
4
- import type { LintError } from '../base';
5
- import type { SolTokenBase } from '../mixin/sol';
6
- export interface HeadingToken extends SolTokenBase {
7
- }
4
+ import type { LintError, AST } from '../base';
5
+ /**
6
+ * 章节标题
7
+ * @classdesc `{childNodes: [Token, SyntaxToken]}`
8
+ */
8
9
  export declare abstract class HeadingToken extends Token {
9
10
  #private;
10
11
  readonly type = "heading";
11
12
  readonly childNodes: readonly [Token, SyntaxToken];
12
- abstract get children(): [Token, SyntaxToken];
13
13
  abstract get firstChild(): Token;
14
- abstract get firstElementChild(): Token;
15
14
  abstract get lastChild(): SyntaxToken;
15
+ abstract get children(): [Token, SyntaxToken];
16
+ abstract get firstElementChild(): Token;
16
17
  abstract get lastElementChild(): SyntaxToken;
17
18
  /** 标题层级 */
18
19
  get level(): number;
@@ -33,7 +34,7 @@ export declare abstract class HeadingToken extends Token {
33
34
  /** @override */
34
35
  print(): string;
35
36
  /** @override */
36
- json(): object;
37
+ json(): AST;
37
38
  /** @override */
38
39
  cloneNode(): this;
39
40
  /**
@@ -44,4 +45,3 @@ export declare abstract class HeadingToken extends Token {
44
45
  /** 移除标题后的不可见内容 */
45
46
  removeTrail(): void;
46
47
  }
47
- export {};