wikiparser-node 1.0.0-beta.3 → 1.0.1-b

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 (146) hide show
  1. package/README.md +10 -9
  2. package/bundle/bundle.min.js +37 -0
  3. package/config/llwiki.json +1 -35
  4. package/config/minimum.json +136 -0
  5. package/config/moegirl.json +1 -44
  6. package/config/zhwiki.json +1 -466
  7. package/extensions/dist/base.js +105 -0
  8. package/extensions/dist/editor.js +172 -0
  9. package/extensions/dist/highlight.js +46 -0
  10. package/extensions/dist/lint.js +43 -0
  11. package/extensions/editor.css +63 -0
  12. package/extensions/ui.css +119 -0
  13. package/package.json +35 -20
  14. package/config/.schema.json +0 -160
  15. package/dist/index.d.ts +0 -62
  16. package/dist/index.js +0 -305
  17. package/dist/internal.d.ts +0 -44
  18. package/dist/lib/element.d.ts +0 -186
  19. package/dist/lib/element.js +0 -659
  20. package/dist/lib/node.d.ts +0 -178
  21. package/dist/lib/node.js +0 -458
  22. package/dist/lib/range.d.ts +0 -132
  23. package/dist/lib/range.js +0 -387
  24. package/dist/lib/ranges.d.ts +0 -28
  25. package/dist/lib/ranges.js +0 -125
  26. package/dist/lib/text.d.ts +0 -78
  27. package/dist/lib/text.js +0 -227
  28. package/dist/lib/title.d.ts +0 -33
  29. package/dist/lib/title.js +0 -110
  30. package/dist/mixin/attributesParent.js +0 -93
  31. package/dist/mixin/fixed.js +0 -32
  32. package/dist/mixin/hidden.js +0 -23
  33. package/dist/mixin/singleLine.js +0 -26
  34. package/dist/mixin/sol.js +0 -44
  35. package/dist/parser/braces.js +0 -125
  36. package/dist/parser/commentAndExt.js +0 -58
  37. package/dist/parser/converter.js +0 -38
  38. package/dist/parser/externalLinks.js +0 -28
  39. package/dist/parser/hrAndDoubleUnderscore.js +0 -40
  40. package/dist/parser/html.js +0 -38
  41. package/dist/parser/links.js +0 -94
  42. package/dist/parser/list.js +0 -61
  43. package/dist/parser/magicLinks.js +0 -39
  44. package/dist/parser/quotes.js +0 -67
  45. package/dist/parser/selector.js +0 -165
  46. package/dist/parser/table.js +0 -117
  47. package/dist/src/arg.d.ts +0 -77
  48. package/dist/src/arg.js +0 -199
  49. package/dist/src/atom.d.ts +0 -11
  50. package/dist/src/atom.js +0 -24
  51. package/dist/src/attribute.d.ts +0 -106
  52. package/dist/src/attribute.js +0 -436
  53. package/dist/src/attributes.d.ts +0 -119
  54. package/dist/src/attributes.js +0 -366
  55. package/dist/src/converter.d.ts +0 -75
  56. package/dist/src/converter.js +0 -141
  57. package/dist/src/converterFlags.d.ts +0 -107
  58. package/dist/src/converterFlags.js +0 -238
  59. package/dist/src/converterRule.d.ts +0 -96
  60. package/dist/src/converterRule.js +0 -255
  61. package/dist/src/extLink.d.ts +0 -63
  62. package/dist/src/extLink.js +0 -157
  63. package/dist/src/gallery.d.ts +0 -70
  64. package/dist/src/gallery.js +0 -137
  65. package/dist/src/heading.d.ts +0 -82
  66. package/dist/src/heading.js +0 -135
  67. package/dist/src/hidden.d.ts +0 -19
  68. package/dist/src/hidden.js +0 -26
  69. package/dist/src/html.d.ts +0 -113
  70. package/dist/src/html.js +0 -245
  71. package/dist/src/imageParameter.d.ts +0 -82
  72. package/dist/src/imageParameter.js +0 -256
  73. package/dist/src/imagemap.d.ts +0 -77
  74. package/dist/src/imagemap.js +0 -169
  75. package/dist/src/imagemapLink.d.ts +0 -48
  76. package/dist/src/imagemapLink.js +0 -43
  77. package/dist/src/index.d.ts +0 -156
  78. package/dist/src/index.js +0 -819
  79. package/dist/src/link/base.d.ts +0 -69
  80. package/dist/src/link/base.js +0 -231
  81. package/dist/src/link/category.d.ts +0 -14
  82. package/dist/src/link/category.js +0 -28
  83. package/dist/src/link/file.d.ts +0 -105
  84. package/dist/src/link/file.js +0 -269
  85. package/dist/src/link/galleryImage.d.ts +0 -37
  86. package/dist/src/link/galleryImage.js +0 -100
  87. package/dist/src/link/index.d.ts +0 -50
  88. package/dist/src/link/index.js +0 -134
  89. package/dist/src/magicLink.d.ts +0 -46
  90. package/dist/src/magicLink.js +0 -131
  91. package/dist/src/nested.d.ts +0 -47
  92. package/dist/src/nested.js +0 -92
  93. package/dist/src/nowiki/base.d.ts +0 -38
  94. package/dist/src/nowiki/base.js +0 -31
  95. package/dist/src/nowiki/comment.d.ts +0 -42
  96. package/dist/src/nowiki/comment.js +0 -64
  97. package/dist/src/nowiki/dd.d.ts +0 -22
  98. package/dist/src/nowiki/dd.js +0 -46
  99. package/dist/src/nowiki/doubleUnderscore.d.ts +0 -35
  100. package/dist/src/nowiki/doubleUnderscore.js +0 -48
  101. package/dist/src/nowiki/hr.d.ts +0 -30
  102. package/dist/src/nowiki/hr.js +0 -36
  103. package/dist/src/nowiki/index.d.ts +0 -19
  104. package/dist/src/nowiki/index.js +0 -23
  105. package/dist/src/nowiki/list.d.ts +0 -16
  106. package/dist/src/nowiki/list.js +0 -13
  107. package/dist/src/nowiki/noinclude.d.ts +0 -21
  108. package/dist/src/nowiki/noinclude.js +0 -24
  109. package/dist/src/nowiki/quote.d.ts +0 -27
  110. package/dist/src/nowiki/quote.js +0 -58
  111. package/dist/src/onlyinclude.d.ts +0 -38
  112. package/dist/src/onlyinclude.js +0 -66
  113. package/dist/src/paramTag/index.d.ts +0 -50
  114. package/dist/src/paramTag/index.js +0 -78
  115. package/dist/src/paramTag/inputbox.d.ts +0 -7
  116. package/dist/src/paramTag/inputbox.js +0 -21
  117. package/dist/src/parameter.d.ts +0 -95
  118. package/dist/src/parameter.js +0 -204
  119. package/dist/src/pre.d.ts +0 -27
  120. package/dist/src/pre.js +0 -44
  121. package/dist/src/syntax.d.ts +0 -22
  122. package/dist/src/syntax.js +0 -67
  123. package/dist/src/table/base.d.ts +0 -60
  124. package/dist/src/table/base.js +0 -80
  125. package/dist/src/table/index.d.ts +0 -247
  126. package/dist/src/table/index.js +0 -783
  127. package/dist/src/table/td.d.ts +0 -119
  128. package/dist/src/table/td.js +0 -268
  129. package/dist/src/table/tr.d.ts +0 -31
  130. package/dist/src/table/tr.js +0 -50
  131. package/dist/src/table/trBase.d.ts +0 -62
  132. package/dist/src/table/trBase.js +0 -157
  133. package/dist/src/tagPair/ext.d.ts +0 -54
  134. package/dist/src/tagPair/ext.js +0 -150
  135. package/dist/src/tagPair/include.d.ts +0 -43
  136. package/dist/src/tagPair/include.js +0 -43
  137. package/dist/src/tagPair/index.d.ts +0 -57
  138. package/dist/src/tagPair/index.js +0 -113
  139. package/dist/src/transclude.d.ts +0 -200
  140. package/dist/src/transclude.js +0 -732
  141. package/dist/util/debug.js +0 -42
  142. package/dist/util/diff.js +0 -71
  143. package/dist/util/lint.js +0 -38
  144. package/dist/util/string.js +0 -74
  145. package/errors/README +0 -1
  146. package/printed/README +0 -1
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.undo = void 0;
4
- /**
5
- * 撤销最近一次Mutation
6
- * @param e 事件
7
- * @param data 事件数据
8
- * @throws `RangeError` 无法撤销的事件类型
9
- */
10
- const undo = (e, data) => {
11
- const { target, type } = e;
12
- switch (type) {
13
- case 'remove': {
14
- const childNodes = [...target.childNodes];
15
- childNodes.splice(data.position, 0, data.removed);
16
- data.removed.setAttribute('parentNode', target);
17
- target.setAttribute('childNodes', childNodes);
18
- break;
19
- }
20
- case 'insert': {
21
- const childNodes = [...target.childNodes];
22
- childNodes.splice(data.position, 1);
23
- target.setAttribute('childNodes', childNodes);
24
- break;
25
- }
26
- case 'replace': {
27
- const { parentNode } = target, childNodes = [...parentNode.childNodes];
28
- childNodes.splice(data.position, 1, data.oldToken);
29
- data.oldToken.setAttribute('parentNode', parentNode);
30
- parentNode.setAttribute('childNodes', childNodes);
31
- break;
32
- }
33
- case 'text':
34
- if (target.type === 'text') {
35
- target.replaceData(data.oldText);
36
- }
37
- break;
38
- default:
39
- throw new RangeError(`无法撤销未知类型的事件:${String(type)}`);
40
- }
41
- };
42
- exports.undo = undo;
package/dist/util/diff.js DELETED
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diff = void 0;
4
- const fs = require("fs/promises");
5
- const child_process_1 = require("child_process");
6
- process.on('unhandledRejection', e => {
7
- console.error(e);
8
- });
9
- /**
10
- * 将shell命令转化为Promise对象
11
- * @param command shell指令
12
- * @param args shell输入参数
13
- */
14
- const cmd = (command, args) => new Promise(resolve => {
15
- let timer, shell;
16
- /**
17
- * 清除进程并返回
18
- * @param val 返回值
19
- */
20
- const r = (val) => {
21
- clearTimeout(timer);
22
- shell?.kill('SIGINT');
23
- resolve(val);
24
- };
25
- try {
26
- shell = (0, child_process_1.spawn)(command, args);
27
- timer = setTimeout(() => {
28
- shell.kill('SIGINT');
29
- }, 60 * 1000);
30
- let buf = '';
31
- shell.stdout.on('data', data => {
32
- buf += String(data);
33
- });
34
- shell.stdout.on('end', () => {
35
- r(buf);
36
- });
37
- shell.on('exit', () => {
38
- r(shell.killed ? undefined : '');
39
- });
40
- shell.on('error', () => {
41
- r(undefined);
42
- });
43
- }
44
- catch {
45
- r(undefined);
46
- }
47
- });
48
- /**
49
- * 比较两个文件
50
- * @param oldStr 旧文本
51
- * @param newStr 新文本
52
- * @param uid 唯一标识
53
- */
54
- const diff = async (oldStr, newStr, uid = -1) => {
55
- if (oldStr === newStr) {
56
- return;
57
- }
58
- const oldFile = `diffOld${uid}`, newFile = `diffNew${uid}`;
59
- await Promise.all([fs.writeFile(oldFile, oldStr), fs.writeFile(newFile, newStr)]);
60
- const stdout = await cmd('git', [
61
- 'diff',
62
- '--color-words=[\xC0-\xFF][\x80-\xBF]+|<?/?\\w+/?>?|[^[:space:]]',
63
- '-U0',
64
- '--no-index',
65
- oldFile,
66
- newFile,
67
- ]);
68
- await Promise.all([fs.unlink(oldFile), fs.unlink(newFile)]);
69
- console.log(stdout?.split('\n')?.slice(4)?.join('\n'));
70
- };
71
- exports.diff = diff;
package/dist/util/lint.js DELETED
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateForSelf = exports.generateForChild = void 0;
4
- const index_1 = require("../index");
5
- /**
6
- * 生成对于子节点的LintError对象
7
- * @param child 子节点
8
- * @param boundingRect 父节点的绝对定位
9
- * @param msg 错误信息
10
- * @param severity 严重程度
11
- */
12
- const generateForChild = (child, boundingRect, msg, severity = 'error') => {
13
- const index = child.getRelativeIndex(), { offsetHeight, offsetWidth, parentNode } = child, { top: offsetTop, left: offsetLeft } = parentNode.posFromIndex(index), { start } = boundingRect, { top, left } = 'top' in boundingRect ? boundingRect : child.getRootNode().posFromIndex(start), str = String(child), excerpt = str.slice(0, 50), startIndex = start + index, endIndex = startIndex + str.length, startLine = top + offsetTop, endLine = startLine + offsetHeight - 1, startCol = offsetTop ? offsetLeft : left + offsetLeft, endCol = offsetHeight === 1 ? startCol + offsetWidth : offsetWidth;
14
- return { message: index_1.default.msg(msg), severity, startIndex, endIndex, startLine, endLine, startCol, endCol, excerpt };
15
- };
16
- exports.generateForChild = generateForChild;
17
- /**
18
- * 生成对于自己的LintError对象
19
- * @param token 节点
20
- * @param boundingRect 绝对定位
21
- * @param msg 错误信息
22
- * @param severity 严重程度
23
- */
24
- const generateForSelf = (token, boundingRect, msg, severity = 'error') => {
25
- const { start } = boundingRect, { offsetHeight, offsetWidth } = token, str = String(token), { top, left } = 'top' in boundingRect ? boundingRect : token.getRootNode().posFromIndex(start);
26
- return {
27
- message: index_1.default.msg(msg),
28
- severity,
29
- startIndex: start,
30
- endIndex: start + str.length,
31
- startLine: top,
32
- endLine: top + offsetHeight - 1,
33
- startCol: left,
34
- endCol: offsetHeight === 1 ? left + offsetWidth : offsetWidth,
35
- excerpt: str.slice(0, 50),
36
- };
37
- };
38
- exports.generateForSelf = generateForSelf;
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeSpace = exports.noWrap = exports.toCase = exports.decodeHtml = exports.text = exports.escapeRegExp = exports.print = exports.removeComment = exports.extUrlChar = exports.extUrlCharFirst = void 0;
4
- exports.extUrlCharFirst = '(?:\\[[\\da-f:.]+\\]|[^[\\]<>"\\0-\\x1F\\x7F\\p{Zs}\\uFFFD])';
5
- exports.extUrlChar = '(?:[^[\\]<>"\\0-\\x1F\\x7F\\p{Zs}\\uFFFD]|\\0\\d+c\\x7F)*';
6
- /**
7
- * remove half-parsed comment-like tokens
8
- * @browser
9
- * @param str 原字符串
10
- */
11
- const removeComment = (str) => str.replace(/\0\d+c\x7F/gu, '');
12
- exports.removeComment = removeComment;
13
- /**
14
- * 以HTML格式打印
15
- * @browser
16
- * @param childNodes 子节点
17
- * @param opt 选项
18
- */
19
- const print = (childNodes, opt = {}) => {
20
- const { pre = '', post = '', sep = '' } = opt, entities = { '&': 'amp', '<': 'lt', '>': 'gt' };
21
- return `${pre}${childNodes.map(child => child.type === 'text'
22
- ? child.data.replace(/[&<>]/gu, p => `&${entities[p]};`)
23
- : child.print()).join(sep)}${post}`;
24
- };
25
- exports.print = print;
26
- /**
27
- * escape special chars for RegExp constructor
28
- * @browser
29
- * @param str RegExp source
30
- */
31
- const escapeRegExp = (str) => str.replace(/[\\{}()|.?*+^$[\]]/gu, '\\$&');
32
- exports.escapeRegExp = escapeRegExp;
33
- /**
34
- * extract effective wikitext
35
- * @browser
36
- * @param childNodes a Token's contents
37
- * @param separator delimiter between nodes
38
- */
39
- const text = (childNodes, separator = '') => childNodes.map(child => typeof child === 'string' ? child : child.text()).join(separator);
40
- exports.text = text;
41
- /**
42
- * decode HTML entities
43
- * @browser
44
- * @param str 原字符串
45
- */
46
- const decodeHtml = (str) => str.replace(/&#(\d+|x[\da-f]+);/giu, (_, code) => String.fromCodePoint(Number(`${code[0].toLowerCase() === 'x' ? '0' : ''}${code}`)));
47
- exports.decodeHtml = decodeHtml;
48
- /**
49
- * optionally convert to lower cases
50
- * @param val 属性值
51
- * @param i 是否对大小写不敏感
52
- */
53
- const toCase = (val, i) => i ? val.toLowerCase() : val;
54
- exports.toCase = toCase;
55
- /**
56
- * escape newlines
57
- * @param str 原字符串
58
- */
59
- const noWrap = (str) => str.replaceAll('\n', '\\n');
60
- exports.noWrap = noWrap;
61
- /**
62
- * convert newline in text nodes to single whitespace
63
- * @param token 父节点
64
- */
65
- const normalizeSpace = (token) => {
66
- if (token) {
67
- for (const child of token.childNodes) {
68
- if (child.type === 'text') {
69
- child.replaceData(child.data.replaceAll('\n', ' '));
70
- }
71
- }
72
- }
73
- };
74
- exports.normalizeSpace = normalizeSpace;
package/errors/README DELETED
@@ -1 +0,0 @@
1
- 这里记录解析失败时处于半解析状态的维基文本以及错误信息。
package/printed/README DELETED
@@ -1 +0,0 @@
1
- 这里存放以 JSON 格式打印的 AST。