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,5 +1,6 @@
1
1
  /**
2
2
  * 不可包含换行符的类
3
3
  * @param constructor 基类
4
+ * @param _ context
4
5
  */
5
- export declare const singleLine: <T extends AstConstructor>(constructor: T) => T;
6
+ export declare const singleLine: <T extends AstConstructor>(constructor: T, _?: unknown) => T;
@@ -5,8 +5,9 @@ const constants_1 = require("../util/constants");
5
5
  /**
6
6
  * 不可包含换行符的类
7
7
  * @param constructor 基类
8
+ * @param _ context
8
9
  */
9
- const singleLine = (constructor) => {
10
+ const singleLine = (constructor, _) => {
10
11
  /** 不可包含换行符的类 */
11
12
  class SingleLineToken extends constructor {
12
13
  /** @private */
@@ -18,7 +19,7 @@ const singleLine = (constructor) => {
18
19
  return super.text().replace(/\n/gu, ' ');
19
20
  }
20
21
  }
21
- Object.defineProperty(SingleLineToken, 'name', { value: `SingleLine${constructor.name}` });
22
+ Object.defineProperty(SingleLineToken, 'name', { value: constructor.name });
22
23
  return SingleLineToken;
23
24
  };
24
25
  exports.singleLine = singleLine;
@@ -1,8 +1,6 @@
1
- export interface SolTokenBase {
2
- prependNewLine(): string;
3
- }
4
1
  /**
5
2
  * 只能位于行首的类
6
3
  * @param constructor 基类
4
+ * @param _ context
7
5
  */
8
- export declare const sol: <T extends AstConstructor>(constructor: T) => T;
6
+ export declare const sol: <T extends AstConstructor>(constructor: T, _?: unknown) => T;
package/dist/mixin/sol.js CHANGED
@@ -5,12 +5,13 @@ const constants_1 = require("../util/constants");
5
5
  /**
6
6
  * 只能位于行首的类
7
7
  * @param constructor 基类
8
+ * @param _ context
8
9
  */
9
- const sol = (constructor) => {
10
+ const sol = (constructor, _) => {
10
11
  /** 只能位于行首的类 */
11
12
  class SolToken extends constructor {
12
- /** 在前方插入newline */
13
- prependNewLine() {
13
+ /** @implements */
14
+ #prependNewLine() {
14
15
  const { previousVisibleSibling, parentNode, type } = this;
15
16
  if (previousVisibleSibling) {
16
17
  return String(previousVisibleSibling).endsWith('\n') ? '' : '\n';
@@ -22,19 +23,20 @@ const sol = (constructor) => {
22
23
  }
23
24
  /** @private */
24
25
  toString() {
25
- return `${this.prependNewLine()}${super.toString()}`;
26
+ return `${this.#prependNewLine()}${super.toString()}`;
26
27
  }
27
28
  /** @private */
28
29
  getAttribute(key) {
29
30
  return key === 'padding'
30
- ? this.prependNewLine().length
31
+ ? this.#prependNewLine().length + super.getAttribute('padding')
31
32
  : super.getAttribute(key);
32
33
  }
33
34
  /** @override */
34
35
  text() {
35
- return `${this.prependNewLine()}${super.text()}`;
36
+ return `${this.#prependNewLine()}${super.text()}`;
36
37
  }
37
38
  }
39
+ Object.defineProperty(SolToken, 'name', { value: constructor.name });
38
40
  return SolToken;
39
41
  };
40
42
  exports.sol = sol;
@@ -1,6 +1,9 @@
1
+ export interface SyntaxBase {
2
+ }
1
3
  /**
2
4
  * 满足特定语法格式的Token
3
- * @param constructor 基类
4
5
  * @param pattern 语法正则
6
+ * @param constructor 基类
7
+ * @param _ context
5
8
  */
6
- export declare const syntax: <S extends AstConstructor>(constructor: S, pattern?: RegExp) => S;
9
+ export declare const syntax: (pattern?: RegExp) => <S extends AstConstructor>(constructor: S, _?: unknown) => S;
@@ -6,48 +6,44 @@ const constants_1 = require("../util/constants");
6
6
  const string_1 = require("../util/string");
7
7
  /**
8
8
  * 满足特定语法格式的Token
9
- * @param constructor 基类
10
9
  * @param pattern 语法正则
10
+ * @param constructor 基类
11
+ * @param _ context
11
12
  */
12
- const syntax = (constructor, pattern) => {
13
+ const syntax = (pattern) => (constructor, _) => {
13
14
  /** 满足特定语法格式的Token */
14
15
  class SyntaxToken extends constructor {
15
- #pattern = pattern;
16
+ /** @class */
17
+ constructor(...args) {
18
+ super(...args); // eslint-disable-line @typescript-eslint/no-unsafe-argument
19
+ if (pattern) {
20
+ this.pattern = pattern;
21
+ }
22
+ this.seal('pattern', true);
23
+ }
16
24
  /** @private */
17
25
  afterBuild() {
18
26
  const /** @implements */ syntaxListener = (e, data) => {
19
- if (!debug_1.Shadow.running && !this.#pattern.test(this.text())) {
27
+ if (!debug_1.Shadow.running && !this.pattern.test(this.text())) {
20
28
  (0, debug_1.undo)(e, data);
21
29
  this.constructorError('不可修改语法');
22
30
  }
23
31
  };
24
32
  this.addEventListener(['remove', 'insert', 'replace', 'text'], syntaxListener);
25
33
  }
26
- /** @private */
27
- getAttribute(key) {
28
- return key === 'pattern' ? this.#pattern : super.getAttribute(key);
29
- }
30
- /** @private */
31
- setAttribute(key, value) {
32
- if (key === 'pattern') {
33
- this.#pattern = value;
34
- }
35
- else {
36
- super.setAttribute(key, value);
37
- }
38
- }
39
34
  /**
40
35
  * @override
41
36
  * @param elements 待替换的子节点
42
37
  */
43
38
  replaceChildren(...elements) {
44
- if (debug_1.Shadow.running || this.#pattern.test((0, string_1.text)(elements))) {
39
+ if (debug_1.Shadow.running || this.pattern.test((0, string_1.text)(elements))) {
45
40
  debug_1.Shadow.run(() => {
46
41
  super.replaceChildren(...elements);
47
42
  });
48
43
  }
49
44
  }
50
45
  }
46
+ Object.defineProperty(SyntaxToken, 'name', { value: constructor.name });
51
47
  return SyntaxToken;
52
48
  };
53
49
  exports.syntax = syntax;
@@ -42,9 +42,7 @@ const parseLinks = (wikitext, config = index_1.default.getConfig(), accum = [])
42
42
  s += `[[${x}`;
43
43
  continue;
44
44
  }
45
- const title = index_1.default.normalizeTitle(link, 0, false, config, true, true, true), { ns, valid,
46
- /* NOT FOR BROWSER */
47
- interwiki, } = title;
45
+ const title = index_1.default.normalizeTitle(link, 0, false, config, true, true, true), { ns, valid, interwiki } = title;
48
46
  if (!valid) {
49
47
  s += `[[${x}`;
50
48
  continue;
package/dist/src/arg.d.ts CHANGED
@@ -2,7 +2,7 @@ import Parser from '../index';
2
2
  import { Token } from './index';
3
3
  import { AtomToken } from './atom';
4
4
  import { HiddenToken } from './hidden';
5
- import type { LintError } from '../base';
5
+ import type { LintError, AST } from '../base';
6
6
  /**
7
7
  * `{{{}}}`包裹的参数
8
8
  * @classdesc `{childNodes: [AtomToken, ?Token, ...HiddenToken]}`
@@ -12,10 +12,10 @@ export declare abstract class ArgToken extends Token {
12
12
  readonly type = "arg";
13
13
  readonly name: string;
14
14
  readonly childNodes: readonly [AtomToken] | readonly [AtomToken, Token, ...HiddenToken[]];
15
- abstract get children(): [AtomToken] | [AtomToken, Token, ...HiddenToken[]];
16
15
  abstract get firstChild(): AtomToken;
17
- abstract get firstElementChild(): AtomToken;
18
16
  abstract get lastChild(): Token;
17
+ abstract get children(): [AtomToken] | [AtomToken, Token, ...HiddenToken[]];
18
+ abstract get firstElementChild(): AtomToken;
19
19
  abstract get lastElementChild(): Token;
20
20
  /** 预设值 */
21
21
  get default(): string | false;
@@ -29,7 +29,7 @@ export declare abstract class ArgToken extends Token {
29
29
  /** @override */
30
30
  print(): string;
31
31
  /** @override */
32
- json(): object;
32
+ json(): AST;
33
33
  /** @override */
34
34
  cloneNode(): this;
35
35
  /** 移除无效部分 */
package/dist/src/arg.js CHANGED
@@ -15,6 +15,7 @@ const hidden_1 = require("./hidden");
15
15
  */
16
16
  class ArgToken extends index_2.Token {
17
17
  type = 'arg';
18
+ /* NOT FOR BROWSER END */
18
19
  /** 预设值 */
19
20
  get default() {
20
21
  return this.childNodes[1]?.text() ?? false;
@@ -96,10 +97,9 @@ class ArgToken extends index_2.Token {
96
97
  }
97
98
  /** @override */
98
99
  json() {
99
- return {
100
- ...super.json(),
101
- default: this.default,
102
- };
100
+ const json = super.json();
101
+ json['default'] = this.default;
102
+ return json;
103
103
  }
104
104
  /* NOT FOR BROWSER */
105
105
  /** @override */
@@ -4,22 +4,25 @@ import { AtomToken } from './atom';
4
4
  import type { LintError } from '../base';
5
5
  import type { AttributesToken } from '../internal';
6
6
  export type AttributeTypes = 'ext-attr' | 'html-attr' | 'table-attr';
7
+ /**
8
+ * 扩展和HTML标签属性
9
+ * @classdesc `{childNodes: [AtomToken, Token|AtomToken]}`
10
+ */
7
11
  export declare abstract class AttributeToken extends Token {
8
12
  #private;
9
13
  type: AttributeTypes;
10
14
  readonly name: string;
11
- readonly tag: string;
12
15
  readonly childNodes: readonly [AtomToken, Token];
13
- abstract get children(): [AtomToken, Token];
14
16
  abstract get firstChild(): AtomToken;
15
- abstract get firstElementChild(): AtomToken;
16
17
  abstract get lastChild(): Token;
17
- abstract get lastElementChild(): Token;
18
18
  abstract get parentNode(): AttributesToken | undefined;
19
- abstract get parentElement(): AttributesToken | undefined;
20
19
  abstract get nextSibling(): AtomToken | this | undefined;
21
- abstract get nextElementSibling(): AtomToken | this | undefined;
22
20
  abstract get previousSibling(): AtomToken | this | undefined;
21
+ abstract get children(): [AtomToken, Token];
22
+ abstract get firstElementChild(): AtomToken;
23
+ abstract get lastElementChild(): Token;
24
+ abstract get parentElement(): AttributesToken | undefined;
25
+ abstract get nextElementSibling(): AtomToken | this | undefined;
23
26
  abstract get previousElementSibling(): AtomToken | this | undefined;
24
27
  /** 引号是否匹配 */
25
28
  get balanced(): boolean;
@@ -64,4 +67,3 @@ export declare abstract class AttributeToken extends Token {
64
67
  */
65
68
  rename(key: string): void;
66
69
  }
67
- export {};