ds-markdown 0.1.3 → 0.1.4-beta.1

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 (92) hide show
  1. package/dist/cjs/index.d.ts +98 -6
  2. package/dist/cjs/index.js +670 -12
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/plugins/index.d.ts +8 -1
  5. package/dist/cjs/plugins/index.js +15 -14
  6. package/dist/cjs/plugins/index.js.map +1 -1
  7. package/dist/esm/index.d.ts +98 -6
  8. package/dist/esm/index.js +664 -5
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/plugins/index.d.ts +8 -1
  11. package/dist/esm/plugins/index.js +7 -2
  12. package/dist/esm/plugins/index.js.map +1 -1
  13. package/package.json +16 -6
  14. package/dist/cjs/AutoScroll/index.d.ts +0 -6
  15. package/dist/cjs/AutoScroll/index.js +0 -9
  16. package/dist/cjs/AutoScroll/index.js.map +0 -1
  17. package/dist/cjs/Markdown/index.d.ts +0 -4
  18. package/dist/cjs/Markdown/index.js +0 -70
  19. package/dist/cjs/Markdown/index.js.map +0 -1
  20. package/dist/cjs/MarkdownCMD/index.d.ts +0 -3
  21. package/dist/cjs/MarkdownCMD/index.js +0 -197
  22. package/dist/cjs/MarkdownCMD/index.js.map +0 -1
  23. package/dist/cjs/components/BlockWrap/index.d.ts +0 -9
  24. package/dist/cjs/components/BlockWrap/index.js +0 -8
  25. package/dist/cjs/components/BlockWrap/index.js.map +0 -1
  26. package/dist/cjs/components/HighReactMarkdown/index.d.ts +0 -11
  27. package/dist/cjs/components/HighReactMarkdown/index.js +0 -58
  28. package/dist/cjs/components/HighReactMarkdown/index.js.map +0 -1
  29. package/dist/cjs/constant.d.ts +0 -3
  30. package/dist/cjs/constant.js +0 -7
  31. package/dist/cjs/constant.js.map +0 -1
  32. package/dist/cjs/defined.d.ts +0 -132
  33. package/dist/cjs/defined.js +0 -3
  34. package/dist/cjs/defined.js.map +0 -1
  35. package/dist/cjs/hooks/useTypingTask.d.ts +0 -32
  36. package/dist/cjs/hooks/useTypingTask.js +0 -339
  37. package/dist/cjs/hooks/useTypingTask.js.map +0 -1
  38. package/dist/cjs/package.json +0 -1
  39. package/dist/cjs/utils/Tokenizer.d.ts +0 -47
  40. package/dist/cjs/utils/Tokenizer.js +0 -196
  41. package/dist/cjs/utils/Tokenizer.js.map +0 -1
  42. package/dist/cjs/utils/compiler.d.ts +0 -4
  43. package/dist/cjs/utils/compiler.js +0 -65
  44. package/dist/cjs/utils/compiler.js.map +0 -1
  45. package/dist/cjs/utils/methods/deepClone.d.ts +0 -1
  46. package/dist/cjs/utils/methods/deepClone.js +0 -7
  47. package/dist/cjs/utils/methods/deepClone.js.map +0 -1
  48. package/dist/cjs/utils/remarkMathBracket.d.ts +0 -7
  49. package/dist/cjs/utils/remarkMathBracket.js +0 -40
  50. package/dist/cjs/utils/remarkMathBracket.js.map +0 -1
  51. package/dist/cjs/utils/rule.d.ts +0 -25
  52. package/dist/cjs/utils/rule.js +0 -72
  53. package/dist/cjs/utils/rule.js.map +0 -1
  54. package/dist/esm/AutoScroll/index.d.ts +0 -6
  55. package/dist/esm/AutoScroll/index.js +0 -7
  56. package/dist/esm/AutoScroll/index.js.map +0 -1
  57. package/dist/esm/Markdown/index.d.ts +0 -4
  58. package/dist/esm/Markdown/index.js +0 -65
  59. package/dist/esm/Markdown/index.js.map +0 -1
  60. package/dist/esm/MarkdownCMD/index.d.ts +0 -3
  61. package/dist/esm/MarkdownCMD/index.js +0 -192
  62. package/dist/esm/MarkdownCMD/index.js.map +0 -1
  63. package/dist/esm/components/BlockWrap/index.d.ts +0 -9
  64. package/dist/esm/components/BlockWrap/index.js +0 -6
  65. package/dist/esm/components/BlockWrap/index.js.map +0 -1
  66. package/dist/esm/components/HighReactMarkdown/index.d.ts +0 -11
  67. package/dist/esm/components/HighReactMarkdown/index.js +0 -53
  68. package/dist/esm/components/HighReactMarkdown/index.js.map +0 -1
  69. package/dist/esm/constant.d.ts +0 -3
  70. package/dist/esm/constant.js +0 -4
  71. package/dist/esm/constant.js.map +0 -1
  72. package/dist/esm/defined.d.ts +0 -132
  73. package/dist/esm/defined.js +0 -2
  74. package/dist/esm/defined.js.map +0 -1
  75. package/dist/esm/hooks/useTypingTask.d.ts +0 -32
  76. package/dist/esm/hooks/useTypingTask.js +0 -335
  77. package/dist/esm/hooks/useTypingTask.js.map +0 -1
  78. package/dist/esm/utils/Tokenizer.d.ts +0 -47
  79. package/dist/esm/utils/Tokenizer.js +0 -191
  80. package/dist/esm/utils/Tokenizer.js.map +0 -1
  81. package/dist/esm/utils/compiler.d.ts +0 -4
  82. package/dist/esm/utils/compiler.js +0 -62
  83. package/dist/esm/utils/compiler.js.map +0 -1
  84. package/dist/esm/utils/methods/deepClone.d.ts +0 -1
  85. package/dist/esm/utils/methods/deepClone.js +0 -4
  86. package/dist/esm/utils/methods/deepClone.js.map +0 -1
  87. package/dist/esm/utils/remarkMathBracket.d.ts +0 -7
  88. package/dist/esm/utils/remarkMathBracket.js +0 -36
  89. package/dist/esm/utils/remarkMathBracket.js.map +0 -1
  90. package/dist/esm/utils/rule.d.ts +0 -25
  91. package/dist/esm/utils/rule.js +0 -69
  92. package/dist/esm/utils/rule.js.map +0 -1
@@ -1,196 +0,0 @@
1
- "use strict";
2
- /** 此文件借鉴 marked 的部分代码 */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Tokenizer = exports.getTokenId = void 0;
5
- const rule_js_1 = require("./rule.js");
6
- let id = 0;
7
- const getTokenId = () => {
8
- return id++;
9
- };
10
- exports.getTokenId = getTokenId;
11
- class Tokenizer {
12
- /** 空行 */
13
- space(src) {
14
- const cap = rule_js_1.rules.block.newline.exec(src);
15
- if (cap) {
16
- return {
17
- type: 'space',
18
- raw: cap[0],
19
- id: (0, exports.getTokenId)(),
20
- };
21
- }
22
- }
23
- /** 围栏 fence */
24
- fence(src) {
25
- const cap = rule_js_1.rules.block.fences.exec(src);
26
- if (cap) {
27
- return {
28
- type: 'fence',
29
- raw: cap[0],
30
- id: (0, exports.getTokenId)(),
31
- };
32
- }
33
- }
34
- /** 块 */
35
- segment(src) {
36
- const cap = rule_js_1.rules.block.segment.exec(src);
37
- if (cap) {
38
- return {
39
- type: 'segment',
40
- raw: cap[0],
41
- id: (0, exports.getTokenId)(),
42
- };
43
- }
44
- }
45
- /** 列表 */
46
- list(src) {
47
- let cap = rule_js_1.rules.block.list.exec(src);
48
- if (cap) {
49
- let bull = cap[1].trim();
50
- const isordered = bull.length > 1;
51
- const list = {
52
- type: 'list',
53
- raw: '',
54
- items: [],
55
- loose: false,
56
- id: (0, exports.getTokenId)(),
57
- };
58
- bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`;
59
- // Get next list item
60
- const itemRegex = rule_js_1.rules.other.listItemRegex(bull);
61
- while (src) {
62
- let endEarly = false;
63
- let raw = '';
64
- let itemContents = '';
65
- if (!(cap = itemRegex.exec(src))) {
66
- break;
67
- }
68
- if (rule_js_1.rules.block.hr.test(src)) {
69
- // End list if bullet was actually HR (possibly move into itemRegex?)
70
- break;
71
- }
72
- raw = cap[0];
73
- src = src.substring(raw.length);
74
- /** 获取列表项 */
75
- let line = cap[2].split('\n', 1)[0].replace(rule_js_1.rules.other.listReplaceTabs, (t) => ' '.repeat(3 * t.length));
76
- let nextLine = src.split('\n', 1)[0];
77
- let blankLine = !line.trim();
78
- let indent = 0;
79
- if (blankLine) {
80
- indent = cap[1].length + 1;
81
- }
82
- else {
83
- indent = cap[2].search(rule_js_1.rules.other.nonSpaceChar); // Find first non-space char
84
- indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent
85
- itemContents = line.slice(indent);
86
- indent += cap[1].length;
87
- }
88
- if (blankLine && src === '') {
89
- endEarly = true;
90
- }
91
- else if (blankLine && rule_js_1.rules.other.blankLine.test(nextLine)) {
92
- // Items begin with at most one blank line
93
- raw += nextLine + '\n';
94
- src = src.substring(nextLine.length + 1);
95
- endEarly = true;
96
- }
97
- if (!endEarly) {
98
- const nextBulletRegex = rule_js_1.rules.other.nextBulletRegex(indent);
99
- const hrRegex = rule_js_1.rules.other.hrRegex(indent);
100
- const fencesBeginRegex = rule_js_1.rules.other.fencesBeginRegex(indent);
101
- const headingBeginRegex = rule_js_1.rules.other.headingBeginRegex(indent);
102
- const htmlBeginRegex = rule_js_1.rules.other.htmlBeginRegex(indent);
103
- // Check if following lines should be included in List Item
104
- while (src) {
105
- const rawLine = src.split('\n', 1)[0];
106
- const nextLineWithoutTabs = nextLine.replace(rule_js_1.rules.other.tabCharGlobal, ' ');
107
- nextLine = rawLine;
108
- // End list item if found code fences
109
- if (fencesBeginRegex.test(nextLine)) {
110
- break;
111
- }
112
- // End list item if found start of new heading
113
- if (headingBeginRegex.test(nextLine)) {
114
- break;
115
- }
116
- // End list item if found start of html block
117
- if (htmlBeginRegex.test(nextLine)) {
118
- break;
119
- }
120
- // End list item if found start of new bullet
121
- if (nextBulletRegex.test(nextLine)) {
122
- break;
123
- }
124
- // Horizontal rule found
125
- if (hrRegex.test(nextLine)) {
126
- break;
127
- }
128
- if (nextLineWithoutTabs.search(rule_js_1.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {
129
- // Dedent if possible
130
- itemContents += '\n' + nextLineWithoutTabs.slice(indent);
131
- }
132
- else {
133
- // not enough indentation
134
- if (blankLine) {
135
- break;
136
- }
137
- // paragraph continuation unless last line was a different block level element
138
- if (line.replace(rule_js_1.rules.other.tabCharGlobal, ' ').search(rule_js_1.rules.other.nonSpaceChar) >= 4) {
139
- // indented code block
140
- break;
141
- }
142
- if (fencesBeginRegex.test(line)) {
143
- break;
144
- }
145
- if (headingBeginRegex.test(line)) {
146
- break;
147
- }
148
- if (hrRegex.test(line)) {
149
- break;
150
- }
151
- itemContents += '\n' + nextLine;
152
- }
153
- if (!blankLine && !nextLine.trim()) {
154
- // Check if current line is blank
155
- blankLine = true;
156
- }
157
- raw += rawLine + '\n';
158
- src = src.substring(rawLine.length + 1);
159
- line = nextLineWithoutTabs.slice(indent);
160
- }
161
- }
162
- let ischecked;
163
- const istask = rule_js_1.rules.other.listIsTask.exec(itemContents);
164
- if (istask) {
165
- ischecked = istask[0] !== '[ ] ';
166
- itemContents = itemContents.replace(rule_js_1.rules.other.listReplaceTask, '');
167
- }
168
- list.items.push({
169
- type: 'list_item',
170
- raw,
171
- task: !!istask,
172
- checked: ischecked,
173
- loose: false,
174
- text: itemContents,
175
- tokens: [],
176
- id: (0, exports.getTokenId)(),
177
- });
178
- list.raw += raw;
179
- }
180
- // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
181
- const lastItem = list.items.at(-1);
182
- if (lastItem) {
183
- lastItem.raw = lastItem.raw.trimEnd();
184
- lastItem.text = lastItem.text.trimEnd();
185
- }
186
- else {
187
- // not a list since there were no items
188
- return;
189
- }
190
- list.raw = list.raw.trimEnd();
191
- return list;
192
- }
193
- }
194
- }
195
- exports.Tokenizer = Tokenizer;
196
- //# sourceMappingURL=Tokenizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../../../src/utils/Tokenizer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Token } from './Tokenizer.js';
2
- declare function createCompiler(src: string): Token[];
3
- export declare const compiler: typeof createCompiler;
4
- export {};
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compiler = void 0;
4
- const Tokenizer_js_1 = require("./Tokenizer.js");
5
- function compile(src) {
6
- const tokenizer = new Tokenizer_js_1.Tokenizer();
7
- const tokens = [];
8
- let prevScr = src;
9
- while (src) {
10
- if (src.length === 0) {
11
- break;
12
- }
13
- // TODO: 临时方案
14
- if (src.trim().length === 0 && tokens.length > 0) {
15
- const lastToken = tokens[tokens.length - 1];
16
- // 如果只剩下空格或换行符,则加到上一个token中
17
- if (lastToken.type === 'list') {
18
- lastToken.raw = lastToken.raw + src;
19
- break;
20
- }
21
- }
22
- const space = tokenizer.space(src);
23
- if (space) {
24
- tokens.push(space);
25
- src = src.slice(space.raw.length);
26
- continue;
27
- }
28
- const list = tokenizer.list(src);
29
- if (list) {
30
- tokens.push(list);
31
- src = src.slice(list.raw.length);
32
- continue;
33
- }
34
- const fence = tokenizer.fence(src);
35
- if (fence) {
36
- tokens.push(fence);
37
- src = src.slice(fence.raw.length);
38
- continue;
39
- }
40
- const segment = tokenizer.segment(src);
41
- if (segment) {
42
- tokens.push(segment);
43
- src = src.slice(segment.raw.length);
44
- continue;
45
- }
46
- if (prevScr === src && src) {
47
- // 如果src没有变化,则认为是一个段落
48
- // todo: 后面会做优化,进行细分
49
- tokens.push({
50
- type: 'segment',
51
- raw: src,
52
- id: (0, Tokenizer_js_1.getTokenId)(),
53
- });
54
- src = '';
55
- }
56
- prevScr = src;
57
- }
58
- return tokens;
59
- }
60
- function createCompiler(src) {
61
- const tokens = compile(src);
62
- return tokens;
63
- }
64
- exports.compiler = createCompiler;
65
- //# sourceMappingURL=compiler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/utils/compiler.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAE9D,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,SAAS,GAAG,IAAI,wBAAS,EAAE,CAAC;IAElC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,GAAG,CAAC;IAElB,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM;QACR,CAAC;QAED,aAAa;QACb,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,2BAA2B;YAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;gBACpC,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAC3B,qBAAqB;YACrB,oBAAoB;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,GAAG;gBACR,EAAE,EAAE,IAAA,yBAAU,GAAE;aACjB,CAAC,CAAC;YACH,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,QAAQ,GAAG,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- export default function deepClone<T>(obj: T): T;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = deepClone;
4
- function deepClone(obj) {
5
- return JSON.parse(JSON.stringify(obj));
6
- }
7
- //# sourceMappingURL=deepClone.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deepClone.js","sourceRoot":"","sources":["../../../../src/utils/methods/deepClone.ts"],"names":[],"mappings":";;AAAA,4BAEC;AAFD,SAAwB,SAAS,CAAI,GAAM;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { Plugin } from 'unified';
2
- /**
3
- * remark 插件:将 \[...\] 转换为 $$...$$,\(...\) 转换为 $...$,以便 remark-math 能识别。
4
- */
5
- declare const remarkMathBracket: Plugin;
6
- export declare const replaceMathBracket: (value: string) => string;
7
- export default remarkMathBracket;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.replaceMathBracket = void 0;
4
- const unist_util_visit_1 = require("unist-util-visit");
5
- /**
6
- * remark 插件:将 \[...\] 转换为 $$...$$,\(...\) 转换为 $...$,以便 remark-math 能识别。
7
- */
8
- const remarkMathBracket = () => (tree, file) => {
9
- (0, unist_util_visit_1.visit)(tree, 'text', (node) => {
10
- const value = node.value;
11
- if (typeof value === 'string') {
12
- node.value = (0, exports.replaceMathBracket)(value);
13
- }
14
- });
15
- };
16
- const replaceMathBracket = (value) => {
17
- // 1. 提取所有块级公式内容,临时替换为占位符, [...]
18
- const blockMatches = [];
19
- let replaced = value.replace(/\\*\[([\s\S]+?)\\*\]/g, (_m, p1) => {
20
- blockMatches.push(p1);
21
- return `__BLOCK_MATH_${blockMatches.length - 1}__`;
22
- });
23
- // 也需要兼容 $$ xxxx $$ 这种写法
24
- replaced = replaced.replace(/\$\$([\s\S]+?)\$\$/g, (_m, p1) => {
25
- blockMatches.push(p1);
26
- return `__BLOCK_MATH_${blockMatches.length - 1}__`;
27
- });
28
- // 2. 替换块级公式外部的 ( ... ) 为 $...$
29
- replaced = replaced.replace(/\\*\(([^)]+?)\\*\)/g, (_m, p1) => {
30
- return '$' + p1 + '$';
31
- });
32
- // 3. 还原块级公式内容,保持其内部小括号原样
33
- replaced = replaced.replace(/__BLOCK_MATH_(\d+)__/g, (_m, idx) => {
34
- return '$$' + blockMatches[Number(idx)] + '$$';
35
- });
36
- return replaced;
37
- };
38
- exports.replaceMathBracket = replaceMathBracket;
39
- exports.default = remarkMathBracket;
40
- //# sourceMappingURL=remarkMathBracket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remarkMathBracket.js","sourceRoot":"","sources":["../../../src/utils/remarkMathBracket.ts"],"names":[],"mappings":";;;AACA,uDAAyC;AAEzC;;GAEG;AACH,MAAM,iBAAiB,GAAW,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACrD,IAAA,wBAAK,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAuB,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAClD,gCAAgC;IAChC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/D,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,OAAO,gBAAgB,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5D,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,OAAO,gBAAgB,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5D,OAAO,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;QAC/D,OAAO,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAzBW,QAAA,kBAAkB,sBAyB7B;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -1,25 +0,0 @@
1
- /** 此文件借鉴 marked 的部分代码 */
2
- export declare const rules: {
3
- block: {
4
- newline: RegExp;
5
- fences: RegExp;
6
- segment: RegExp;
7
- list: RegExp;
8
- hr: RegExp;
9
- };
10
- other: {
11
- caret: RegExp;
12
- listItemRegex: (bull: string) => RegExp;
13
- nextBulletRegex: (indent: number) => RegExp;
14
- listReplaceTabs: RegExp;
15
- nonSpaceChar: RegExp;
16
- blankLine: RegExp;
17
- listIsTask: RegExp;
18
- listReplaceTask: RegExp;
19
- tabCharGlobal: RegExp;
20
- hrRegex: (indent: number) => RegExp;
21
- headingBeginRegex: (indent: number) => RegExp;
22
- htmlBeginRegex: (indent: number) => RegExp;
23
- fencesBeginRegex: (indent: number) => RegExp;
24
- };
25
- };
@@ -1,72 +0,0 @@
1
- "use strict";
2
- /** 此文件借鉴 marked 的部分代码 */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.rules = void 0;
5
- const other = {
6
- caret: /(^|[^[])\^/g,
7
- listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\n]*)?(?:\\n|$))`),
8
- nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),
9
- listReplaceTabs: /^\t+/,
10
- nonSpaceChar: /[^ ]/,
11
- blankLine: /^[ \t]*$/,
12
- listIsTask: /^\[[ xX]\] /,
13
- listReplaceTask: /^\[[ xX]\] +/,
14
- tabCharGlobal: /\t/g,
15
- hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),
16
- headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),
17
- htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, 'i'),
18
- fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`),
19
- };
20
- /**
21
- * 编辑正则表达式
22
- * @param regex 正则表达式
23
- * @param opt 正则表达式选项
24
- * @returns 编辑后的正则表达式
25
- */
26
- function edit(regex, opt = '') {
27
- let source = typeof regex === 'string' ? regex : regex.source;
28
- const obj = {
29
- replace: (name, val) => {
30
- let valSource = typeof val === 'string' ? val : val.source;
31
- valSource = valSource.replace(other.caret, '$1');
32
- source = source.replace(name, valSource);
33
- return obj;
34
- },
35
- getRegex: () => {
36
- return new RegExp(source, opt);
37
- },
38
- };
39
- return obj;
40
- }
41
- const newline = /^(?:[ \t]*(?:\n|$))+/;
42
- const hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/;
43
- /** 列表 */
44
- const bullet = /(?:[*+-]|\d{1,9}[.)])/;
45
- /** 列表 */
46
- const list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/)
47
- .replace(/bull/g, bullet)
48
- .getRegex();
49
- /** 围栏 fence
50
- * 什么是围栏: 围栏是用来包裹代码块的,比如 ```javascript 和 ``` 之间就是围栏
51
- */
52
- const fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/;
53
- // 一个块
54
- // const _segment = /^([^\n]+(?:\n(?!fences|list|hr| +\n)[^\n]+)*)/;
55
- const _segment = /^([^\n]+(?:\n(?!fences|list|hr| +\n|\n)[^\n]+)*\n?)/;
56
- const segment = edit(_segment)
57
- .replace(/fences/, fences)
58
- .replace(/list/, list)
59
- .replace(/hr/, hr)
60
- .getRegex();
61
- const blockNormal = {
62
- newline,
63
- fences,
64
- segment,
65
- list,
66
- hr,
67
- };
68
- exports.rules = {
69
- block: blockNormal,
70
- other,
71
- };
72
- //# sourceMappingURL=rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/utils/rule.ts"],"names":[],"mappings":";AAAA,yBAAyB;;;AAEzB,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,aAAa;IACpB,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,+BAA+B,CAAC;IAC3F,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,qDAAqD,CAAC;IACrI,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,MAAM;IACpB,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE,aAAa;IACzB,eAAe,EAAE,cAAc;IAC/B,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,oDAAoD,CAAC;IAC5H,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;IACtF,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC;IACxG,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC;CACnG,CAAC;AAEF;;;;;GAKG;AACH,SAAS,IAAI,CAAC,KAAsB,EAAE,GAAG,GAAG,EAAE;IAC5C,IAAI,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9D,MAAM,GAAG,GAAG;QACV,OAAO,EAAE,CAAC,IAAqB,EAAE,GAAoB,EAAE,EAAE;YACvD,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAC3D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,GAAG,sBAAsB,CAAC;AACvC,MAAM,EAAE,GAAG,oEAAoE,CAAC;AAChF,SAAS;AACT,MAAM,MAAM,GAAG,uBAAuB,CAAC;AACvC,SAAS;AACT,MAAM,IAAI,GAAG,IAAI,CAAC,sCAAsC,CAAC;KACtD,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;KACxB,QAAQ,EAAE,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,GAAG,6GAA6G,CAAC;AAC7H,MAAM;AACN,oEAAoE;AACpE,MAAM,QAAQ,GAAG,qDAAqD,CAAC;AAEvE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC3B,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;KACzB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KACrB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;KACjB,QAAQ,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,MAAM;IACN,OAAO;IACP,IAAI;IACJ,EAAE;CACH,CAAC;AAEW,QAAA,KAAK,GAAG;IACnB,KAAK,EAAE,WAAW;IAClB,KAAK;CACN,CAAC"}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- interface AutoScrollProps {
3
- children: React.ReactNode;
4
- }
5
- declare const AutoScroll: React.FC<AutoScrollProps>;
6
- export default AutoScroll;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- const modulePrefix = 'AutoScroll';
3
- const AutoScroll = (props) => {
4
- return _jsx("div", { className: "ds-markdown_auto_scroll", children: props.children });
5
- };
6
- export default AutoScroll;
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AutoScroll/index.tsx"],"names":[],"mappings":";AAMA,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,UAAU,GAA8B,CAAC,KAAsB,EAAE,EAAE;IACvE,OAAO,cAAK,SAAS,EAAC,yBAAyB,YAAE,KAAK,CAAC,QAAQ,GAAO,CAAC;AACzE,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { MarkdownProps } from '../defined.js';
3
- declare const _default: React.NamedExoticComponent<MarkdownProps & React.RefAttributes<import("../defined.js").MarkdownBaseRef>>;
4
- export default _default;
@@ -1,65 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
3
- import { __DEV__ } from '../constant.js';
4
- import MarkdownCMD from '../MarkdownCMD/index.js';
5
- const MarkdownInner = ({ children: _children = '', answerType, markdownRef, ...rest }) => {
6
- const cmdRef = useRef(null);
7
- const prefixRef = useRef('');
8
- const content = useMemo(() => {
9
- if (typeof _children === 'string') {
10
- return _children;
11
- }
12
- if (__DEV__) {
13
- console.error('Markdown组件的子元素必须是一个字符串');
14
- }
15
- return '';
16
- }, [_children]);
17
- useEffect(() => {
18
- if (prefixRef.current !== content) {
19
- let newContent = '';
20
- if (prefixRef.current === '') {
21
- newContent = content;
22
- }
23
- else {
24
- if (content.startsWith(prefixRef.current)) {
25
- newContent = content.slice(prefixRef.current.length);
26
- }
27
- else {
28
- newContent = content;
29
- cmdRef.current.clear();
30
- }
31
- }
32
- cmdRef.current.push(newContent, answerType);
33
- prefixRef.current = content;
34
- }
35
- }, [answerType, content]);
36
- useImperativeHandle(markdownRef, () => ({
37
- stop: () => {
38
- cmdRef.current.stop();
39
- },
40
- resume: () => {
41
- cmdRef.current.resume();
42
- },
43
- start: () => {
44
- cmdRef.current.start();
45
- },
46
- restart: () => {
47
- cmdRef.current.restart();
48
- },
49
- }));
50
- return _jsx(MarkdownCMD, { ref: cmdRef, ...rest });
51
- };
52
- const Markdown = forwardRef((props, ref) => {
53
- const { children = '', answerType = 'answer' } = props;
54
- if (__DEV__) {
55
- if (!['thinking', 'answer'].includes(answerType)) {
56
- throw new Error('Markdown组件的answerType必须是thinking或answer');
57
- }
58
- if (typeof children !== 'string') {
59
- throw new Error('Markdown组件的子元素必须是一个字符串');
60
- }
61
- }
62
- return _jsx(MarkdownInner, { ...props, answerType: answerType, markdownRef: ref });
63
- });
64
- export default memo(Markdown);
65
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Markdown/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAMlD,MAAM,aAAa,GAAiC,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACrH,MAAM,MAAM,GAAG,MAAM,CAAiB,IAAK,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAClC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC7B,UAAU,GAAG,OAAO,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,OAAO,CAAC;oBACrB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC5C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1B,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC,CAAC;IAEJ,OAAO,KAAC,WAAW,IAAC,GAAG,EAAE,MAAM,KAAM,IAAI,GAAI,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,CAA6B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,UAAU,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEvD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,KAAC,aAAa,OAAK,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,GAAI,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { MarkdownCMDProps, MarkdownCMDRef } from '../defined.js';
2
- declare const MarkdownCMD: import("react").ForwardRefExoticComponent<MarkdownCMDProps & import("react").RefAttributes<MarkdownCMDRef>>;
3
- export default MarkdownCMD;