ds-markdown 0.0.9 → 0.0.10-beta.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.
package/README.md CHANGED
@@ -141,15 +141,6 @@ export default App;
141
141
 
142
142
  由于本组件采用`react hooks`编写,所以`react`版本最低为`v16.8.0`
143
143
 
144
- ## 期待中的功能
145
-
146
- - 支持多种主题(开发中)
147
- - 增加测试用例(开发中)
148
- - 支持H5端(未开始,预计2025年5月底完成)
149
- - 支持微信、支付宝小程序端(未开始,预计2025年6月底完成)
150
-
151
- 由于本页面仔写业务写的飞起,只能在闲暇之余来开发本库,也希望各位小伙伴一起来共建😘
152
-
153
144
  ## License
154
145
 
155
146
  MIT
@@ -5,8 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
- const index_js_1 = __importDefault(require("../components/HighReactMarkdown/index.js"));
8
+ const index_1 = __importDefault(require("../components/HighReactMarkdown/index"));
9
9
  const classnames_1 = __importDefault(require("classnames"));
10
+ const compiler_js_1 = require("../utils/compiler.js");
10
11
  const constant_js_1 = require("../constant.js");
11
12
  const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped = false, onEnd, onStart, onTypedChar }, ref) => {
12
13
  /** 当前需要打字的内容 */
@@ -37,12 +38,12 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
37
38
  * 稳定段落
38
39
  * 稳定段落是已经打过字,并且不会再变化的段落
39
40
  */
40
- const [stableParagraphs, setStableParagraphs] = (0, react_1.useState)([]);
41
+ const [stableSegments, setStableSegments] = (0, react_1.useState)([]);
41
42
  /** 当前段落 */
42
- const [currentParagraph, setCurrentParagraph] = (0, react_1.useState)(undefined);
43
+ const [currentSegment, setCurrentSegment] = (0, react_1.useState)(undefined);
43
44
  /** 当前段落引用 */
44
45
  const currentParagraphRef = (0, react_1.useRef)(undefined);
45
- currentParagraphRef.current = currentParagraph;
46
+ currentParagraphRef.current = currentSegment;
46
47
  /** 清除打字定时器 */
47
48
  const clearTimer = () => {
48
49
  if (timerRef.current) {
@@ -58,9 +59,9 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
58
59
  };
59
60
  }, []);
60
61
  /** 思考段落 */
61
- const thinkingParagraphs = (0, react_1.useMemo)(() => stableParagraphs.filter((paragraph) => paragraph.answerType === 'thinking'), [stableParagraphs]);
62
+ const thinkingParagraphs = (0, react_1.useMemo)(() => stableSegments.filter((paragraph) => paragraph.answerType === 'thinking'), [stableSegments]);
62
63
  /** 回答段落 */
63
- const answerParagraphs = (0, react_1.useMemo)(() => stableParagraphs.filter((paragraph) => paragraph.answerType === 'answer'), [stableParagraphs]);
64
+ const answerParagraphs = (0, react_1.useMemo)(() => stableSegments.filter((paragraph) => paragraph.answerType === 'answer'), [stableSegments]);
64
65
  /**
65
66
  * 记录打过的字
66
67
  * @param char 当前字符
@@ -179,14 +180,14 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
179
180
  else {
180
181
  triggerOnTypedChar(char);
181
182
  }
182
- const currentParagraph = currentParagraphRef.current;
183
- /** 如果碰到 则需要处理成两个段落 */
184
- if (char.content === '\n\n') {
185
- if (currentParagraph) {
186
- setStableParagraphs((prev) => {
183
+ const currentSegment = currentParagraphRef.current;
184
+ /** 如果碰到 space 则需要处理成两个段落 */
185
+ if (char.contentType === 'space') {
186
+ if (currentSegment) {
187
+ setStableSegments((prev) => {
187
188
  const newParagraphs = [...prev];
188
- if (currentParagraph) {
189
- newParagraphs.push({ ...currentParagraph, isTyped: false });
189
+ if (currentSegment) {
190
+ newParagraphs.push({ ...currentSegment, isTyped: false });
190
191
  }
191
192
  newParagraphs.push({
192
193
  content: '',
@@ -196,10 +197,10 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
196
197
  });
197
198
  return newParagraphs;
198
199
  });
199
- setCurrentParagraph(undefined);
200
+ setCurrentSegment(undefined);
200
201
  }
201
202
  else {
202
- setStableParagraphs((prev) => {
203
+ setStableSegments((prev) => {
203
204
  const newParagraphs = [...prev];
204
205
  newParagraphs.push({
205
206
  content: '',
@@ -214,7 +215,7 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
214
215
  return;
215
216
  }
216
217
  // 处理当前段落
217
- let _currentParagraph = currentParagraph;
218
+ let _currentParagraph = currentSegment;
218
219
  const newCurrentParagraph = {
219
220
  content: '',
220
221
  isTyped: false,
@@ -225,17 +226,17 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
225
226
  // 如果当前没有段落,则直接设置为当前段落
226
227
  _currentParagraph = newCurrentParagraph;
227
228
  }
228
- else if (currentParagraph && currentParagraph?.answerType !== char.answerType) {
229
+ else if (currentSegment && currentSegment?.answerType !== char.answerType) {
229
230
  // 如果当前段落和当前字符的回答类型不一致,则需要处理成两个段落
230
- setStableParagraphs((prev) => {
231
+ setStableSegments((prev) => {
231
232
  const newParagraphs = [...prev];
232
- newParagraphs.push({ ...currentParagraph, isTyped: false });
233
+ newParagraphs.push({ ...currentSegment, isTyped: false });
233
234
  return newParagraphs;
234
235
  });
235
236
  _currentParagraph = newCurrentParagraph;
236
- setCurrentParagraph(_currentParagraph);
237
+ setCurrentSegment(_currentParagraph);
237
238
  }
238
- setCurrentParagraph((prev) => {
239
+ setCurrentSegment((prev) => {
239
240
  return {
240
241
  ..._currentParagraph,
241
242
  content: (prev?.content || '') + char.content,
@@ -246,6 +247,7 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
246
247
  }
247
248
  startTyped(true);
248
249
  };
250
+ const lastSegmentRaw = (0, react_1.useRef)('');
249
251
  (0, react_1.useImperativeHandle)(ref, () => ({
250
252
  /**
251
253
  * 添加内容
@@ -259,17 +261,26 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
259
261
  }
260
262
  return;
261
263
  }
262
- // 如果两个\n,则\n这两个字符要合一起,作为一个字符处理,并且把多个\n处理成一个\n
263
- const charsGroup = content.split('\n\n');
264
- charsGroup.forEach((chars, index) => {
265
- if (isClosePrettyTyped) {
266
- charsRef.current.push({ content: chars, answerType });
264
+ if (!lastSegmentRaw.current) {
265
+ lastSegmentRaw.current = content;
266
+ }
267
+ else {
268
+ lastSegmentRaw.current += content;
269
+ }
270
+ const tokens = (0, compiler_js_1.compiler)(lastSegmentRaw.current);
271
+ // 如果最后一个token是segment,则把最后一个token的raw赋值给lastSegmentRaw
272
+ if (tokens[tokens.length - 1].type === 'segment') {
273
+ lastSegmentRaw.current = tokens[tokens.length - 1].raw;
274
+ }
275
+ else {
276
+ lastSegmentRaw.current = '';
277
+ }
278
+ tokens.forEach((token) => {
279
+ if (token.type === 'space') {
280
+ charsRef.current.push({ content: token.raw, answerType, contentType: 'space' });
267
281
  }
268
282
  else {
269
- charsRef.current.push(...chars.split('').map((char) => ({ content: char, answerType })));
270
- }
271
- if (index !== charsGroup.length - 1) {
272
- charsRef.current.push({ content: '\n\n', answerType });
283
+ charsRef.current.push(...token.raw.split('').map((char) => ({ content: char, answerType, contentType: 'segment' })));
273
284
  }
274
285
  });
275
286
  if (!isTypedRef.current) {
@@ -282,8 +293,8 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
282
293
  clear: () => {
283
294
  clearTimer();
284
295
  charsRef.current = [];
285
- setStableParagraphs([]);
286
- setCurrentParagraph(undefined);
296
+ setStableSegments([]);
297
+ setCurrentSegment(undefined);
287
298
  isWholeTypedEndRef.current = false;
288
299
  },
289
300
  /**
@@ -301,13 +312,13 @@ const MarkdownCMD = (0, react_1.forwardRef)(({ interval = 30, isClosePrettyTyped
301
312
  if (paragraph.type === 'br') {
302
313
  return null;
303
314
  }
304
- return (0, jsx_runtime_1.jsx)(index_js_1.default, { children: paragraph.content || '' }, index);
305
- }), currentParagraph?.answerType === answerType && (0, jsx_runtime_1.jsx)(index_js_1.default, { children: currentParagraph.content || '' }, currentParagraph.content)] }));
315
+ return (0, jsx_runtime_1.jsx)(index_1.default, { children: paragraph.content || '' }, index);
316
+ }), currentSegment?.answerType === answerType && (0, jsx_runtime_1.jsx)(index_1.default, { children: currentSegment.content || '' }, currentSegment.content)] }));
306
317
  };
307
318
  return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)({
308
319
  'ds-markdown': true,
309
320
  apple: true,
310
- }), children: [(thinkingParagraphs.length > 0 || currentParagraph?.answerType === 'thinking') && (0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-thinking", children: getParagraphs(thinkingParagraphs, 'thinking') }), (answerParagraphs.length > 0 || currentParagraph?.answerType === 'answer') && (0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-answer", children: getParagraphs(answerParagraphs, 'answer') })] }));
321
+ }), children: [(thinkingParagraphs.length > 0 || currentSegment?.answerType === 'thinking') && (0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-thinking", children: getParagraphs(thinkingParagraphs, 'thinking') }), (answerParagraphs.length > 0 || currentSegment?.answerType === 'answer') && (0, jsx_runtime_1.jsx)("div", { className: "ds-markdown-answer", children: getParagraphs(answerParagraphs, 'answer') })] }));
311
322
  });
312
323
  exports.default = MarkdownCMD;
313
324
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MarkdownCMD/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /** 此文件借鉴 marked 的部分代码 */
2
+ interface Space {
3
+ type: 'space';
4
+ raw: string;
5
+ }
6
+ interface Fence {
7
+ type: 'fence';
8
+ raw: string;
9
+ }
10
+ interface Segment {
11
+ type: 'segment';
12
+ raw: string;
13
+ }
14
+ interface List {
15
+ type: 'list';
16
+ raw: string;
17
+ items: ListItem[];
18
+ loose: boolean;
19
+ }
20
+ interface ListItem {
21
+ type: 'list_item';
22
+ raw: string;
23
+ task: boolean;
24
+ checked: boolean | undefined;
25
+ loose: boolean;
26
+ text: string;
27
+ tokens: Token[];
28
+ }
29
+ export type Token = Space | Fence | Segment | List | ListItem;
30
+ export declare class Tokenizer {
31
+ /** 空行 */
32
+ space(src: string): Space | undefined;
33
+ /** 围栏 fence */
34
+ fence(src: string): Fence | undefined;
35
+ /** 块 */
36
+ segment(src: string): Segment | undefined;
37
+ /** 列表 */
38
+ list(src: string): List | undefined;
39
+ }
40
+ export {};
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ /** 此文件借鉴 marked 的部分代码 */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Tokenizer = void 0;
5
+ const rule_1 = require("./rule");
6
+ class Tokenizer {
7
+ /** 空行 */
8
+ space(src) {
9
+ const cap = rule_1.rules.block.newline.exec(src);
10
+ if (cap) {
11
+ return {
12
+ type: 'space',
13
+ raw: cap[0],
14
+ };
15
+ }
16
+ }
17
+ /** 围栏 fence */
18
+ fence(src) {
19
+ const cap = rule_1.rules.block.fences.exec(src);
20
+ if (cap) {
21
+ return {
22
+ type: 'fence',
23
+ raw: cap[0],
24
+ };
25
+ }
26
+ }
27
+ /** 块 */
28
+ segment(src) {
29
+ const cap = rule_1.rules.block.segment.exec(src);
30
+ if (cap) {
31
+ return {
32
+ type: 'segment',
33
+ raw: cap[0],
34
+ };
35
+ }
36
+ }
37
+ /** 列表 */
38
+ list(src) {
39
+ let cap = rule_1.rules.block.list.exec(src);
40
+ if (cap) {
41
+ let bull = cap[1].trim();
42
+ const isordered = bull.length > 1;
43
+ const list = {
44
+ type: 'list',
45
+ raw: cap[0],
46
+ items: [],
47
+ loose: false,
48
+ };
49
+ bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`;
50
+ // Get next list item
51
+ const itemRegex = rule_1.rules.other.listItemRegex(bull);
52
+ while (src) {
53
+ let endEarly = false;
54
+ let raw = '';
55
+ let itemContents = '';
56
+ if (!(cap = itemRegex.exec(src))) {
57
+ break;
58
+ }
59
+ if (rule_1.rules.block.hr.test(src)) {
60
+ // End list if bullet was actually HR (possibly move into itemRegex?)
61
+ break;
62
+ }
63
+ raw = cap[0];
64
+ src = src.substring(raw.length);
65
+ /** 获取列表项 */
66
+ let line = cap[2].split('\n', 1)[0].replace(rule_1.rules.other.listReplaceTabs, (t) => ' '.repeat(3 * t.length));
67
+ let nextLine = src.split('\n', 1)[0];
68
+ let blankLine = !line.trim();
69
+ let indent = 0;
70
+ if (blankLine) {
71
+ indent = cap[1].length + 1;
72
+ }
73
+ else {
74
+ indent = cap[2].search(rule_1.rules.other.nonSpaceChar); // Find first non-space char
75
+ indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent
76
+ itemContents = line.slice(indent);
77
+ indent += cap[1].length;
78
+ }
79
+ if (blankLine && rule_1.rules.other.blankLine.test(nextLine)) {
80
+ // Items begin with at most one blank line
81
+ raw += nextLine + '\n';
82
+ src = src.substring(nextLine.length + 1);
83
+ endEarly = true;
84
+ }
85
+ if (!endEarly) {
86
+ const nextBulletRegex = rule_1.rules.other.nextBulletRegex(indent);
87
+ const hrRegex = rule_1.rules.other.hrRegex(indent);
88
+ const fencesBeginRegex = rule_1.rules.other.fencesBeginRegex(indent);
89
+ const headingBeginRegex = rule_1.rules.other.headingBeginRegex(indent);
90
+ const htmlBeginRegex = rule_1.rules.other.htmlBeginRegex(indent);
91
+ // Check if following lines should be included in List Item
92
+ while (src) {
93
+ const rawLine = src.split('\n', 1)[0];
94
+ const nextLineWithoutTabs = nextLine.replace(rule_1.rules.other.tabCharGlobal, ' ');
95
+ nextLine = rawLine;
96
+ // End list item if found code fences
97
+ if (fencesBeginRegex.test(nextLine)) {
98
+ break;
99
+ }
100
+ // End list item if found start of new heading
101
+ if (headingBeginRegex.test(nextLine)) {
102
+ break;
103
+ }
104
+ // End list item if found start of html block
105
+ if (htmlBeginRegex.test(nextLine)) {
106
+ break;
107
+ }
108
+ // End list item if found start of new bullet
109
+ if (nextBulletRegex.test(nextLine)) {
110
+ break;
111
+ }
112
+ // Horizontal rule found
113
+ if (hrRegex.test(nextLine)) {
114
+ break;
115
+ }
116
+ if (nextLineWithoutTabs.search(rule_1.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {
117
+ // Dedent if possible
118
+ itemContents += '\n' + nextLineWithoutTabs.slice(indent);
119
+ }
120
+ else {
121
+ // not enough indentation
122
+ if (blankLine) {
123
+ break;
124
+ }
125
+ // paragraph continuation unless last line was a different block level element
126
+ if (line.replace(rule_1.rules.other.tabCharGlobal, ' ').search(rule_1.rules.other.nonSpaceChar) >= 4) {
127
+ // indented code block
128
+ break;
129
+ }
130
+ if (fencesBeginRegex.test(line)) {
131
+ break;
132
+ }
133
+ if (headingBeginRegex.test(line)) {
134
+ break;
135
+ }
136
+ if (hrRegex.test(line)) {
137
+ break;
138
+ }
139
+ itemContents += '\n' + nextLine;
140
+ }
141
+ if (!blankLine && !nextLine.trim()) {
142
+ // Check if current line is blank
143
+ blankLine = true;
144
+ }
145
+ raw += rawLine + '\n';
146
+ src = src.substring(rawLine.length + 1);
147
+ line = nextLineWithoutTabs.slice(indent);
148
+ }
149
+ }
150
+ let ischecked;
151
+ const istask = rule_1.rules.other.listIsTask.exec(itemContents);
152
+ if (istask) {
153
+ ischecked = istask[0] !== '[ ] ';
154
+ itemContents = itemContents.replace(rule_1.rules.other.listReplaceTask, '');
155
+ }
156
+ list.items.push({
157
+ type: 'list_item',
158
+ raw,
159
+ task: !!istask,
160
+ checked: ischecked,
161
+ loose: false,
162
+ text: itemContents,
163
+ tokens: [],
164
+ });
165
+ list.raw += raw;
166
+ }
167
+ // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
168
+ const lastItem = list.items.at(-1);
169
+ if (lastItem) {
170
+ lastItem.raw = lastItem.raw.trimEnd();
171
+ lastItem.text = lastItem.text.trimEnd();
172
+ }
173
+ else {
174
+ // not a list since there were no items
175
+ return;
176
+ }
177
+ list.raw = list.raw.trimEnd();
178
+ return list;
179
+ }
180
+ }
181
+ }
182
+ exports.Tokenizer = Tokenizer;
183
+ //# sourceMappingURL=Tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../../../src/utils/Tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Token } from './Tokenizer';
2
+ declare function createCompiler(src: string): Token[];
3
+ export declare const compiler: typeof createCompiler;
4
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compiler = void 0;
4
+ const Tokenizer_1 = require("./Tokenizer");
5
+ function compile(src) {
6
+ const tokenizer = new Tokenizer_1.Tokenizer();
7
+ const tokens = [];
8
+ let prevScr = src;
9
+ while (src) {
10
+ const space = tokenizer.space(src);
11
+ if (space) {
12
+ tokens.push(space);
13
+ src = src.slice(space.raw.length);
14
+ continue;
15
+ }
16
+ const list = tokenizer.list(src);
17
+ if (list) {
18
+ tokens.push(list);
19
+ src = src.slice(list.raw.length);
20
+ continue;
21
+ }
22
+ const fence = tokenizer.fence(src);
23
+ if (fence) {
24
+ tokens.push(fence);
25
+ src = src.slice(fence.raw.length);
26
+ continue;
27
+ }
28
+ const segment = tokenizer.segment(src);
29
+ if (segment) {
30
+ tokens.push(segment);
31
+ src = src.slice(segment.raw.length);
32
+ continue;
33
+ }
34
+ if (prevScr === src && src) {
35
+ // 如果src没有变化,则认为是一个段落
36
+ // todo: 后面会做优化,进行细分
37
+ tokens.push({
38
+ type: 'segment',
39
+ raw: src,
40
+ });
41
+ src = '';
42
+ }
43
+ prevScr = src;
44
+ }
45
+ return tokens;
46
+ }
47
+ function createCompiler(src) {
48
+ const tokens = compile(src);
49
+ return tokens;
50
+ }
51
+ exports.compiler = createCompiler;
52
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/utils/compiler.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;IAElC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,OAAO,GAAG,EAAE,CAAC;QACX,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;aACT,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"}
@@ -0,0 +1,25 @@
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
+ };
@@ -0,0 +1,71 @@
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 = edit(_segment)
56
+ .replace(/fences/, fences)
57
+ .replace(/list/, list)
58
+ .replace(/hr/, hr)
59
+ .getRegex();
60
+ const blockNormal = {
61
+ newline,
62
+ fences,
63
+ segment,
64
+ list,
65
+ hr,
66
+ };
67
+ exports.rules = {
68
+ block: blockNormal,
69
+ other,
70
+ };
71
+ //# sourceMappingURL=rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/utils/rule.ts"],"names":[],"mappings":"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"}