stream-markdown-parser 0.0.14 → 0.0.16

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
@@ -19,6 +19,8 @@ This package contains the core markdown parsing logic extracted from `stream-mar
19
19
  - ⚡ **Fast** - Optimized for performance
20
20
  - 🌊 **Streaming-friendly** - Progressive parsing support
21
21
 
22
+ > ℹ️ We now build on top of [`markdown-it-ts`](https://www.npmjs.com/package/markdown-it-ts), a TypeScript-first distribution of markdown-it. The API stays the same, but we only rely on its parsing pipeline and ship richer typings for tokens and hooks.
23
+
22
24
  ## Installation
23
25
 
24
26
  ```bash
@@ -36,16 +38,17 @@ yarn add stream-markdown-parser
36
38
  ```typescript
37
39
  import { getMarkdown, parseMarkdownToStructure } from 'stream-markdown-parser'
38
40
 
39
- // Create a markdown-it instance with default plugins
41
+ // Create a markdown-it-ts instance with default plugins
40
42
  const md = getMarkdown()
41
43
 
42
- // Parse markdown to HTML
43
- const html = md.render('# Hello World\n\nThis is **bold**.')
44
-
45
- // Or parse to AST structure
44
+ // Parse markdown to our streaming-friendly AST structure
46
45
  const nodes = parseMarkdownToStructure('# Hello World', md)
47
46
  console.log(nodes)
48
47
  // [{ type: 'heading', level: 1, children: [...] }]
48
+
49
+ // markdown-it-ts still exposes render() if you need HTML output,
50
+ // but this package now focuses on the token -> AST pipeline.
51
+ const html = md.render?.('# Hello World\n\nThis is **bold**.')
49
52
  ```
50
53
 
51
54
  ### With Math Options
@@ -117,7 +120,7 @@ const md = getMarkdown('editor-1', {
117
120
 
118
121
  #### `getMarkdown(msgId?, options?)`
119
122
 
120
- Creates a configured markdown-it instance.
123
+ Creates a configured `markdown-it-ts` instance (API-compatible with markdown-it).
121
124
 
122
125
  **Parameters:**
123
126
  - `msgId` (string, optional): Unique identifier for this instance. Default: `editor-${Date.now()}`
@@ -126,7 +129,7 @@ Creates a configured markdown-it instance.
126
129
  **Options:**
127
130
  ```typescript
128
131
  interface GetMarkdownOptions {
129
- // Array of markdown-it plugins to use
132
+ // Array of markdown-it/markdown-it-ts plugins to use
130
133
  plugin?: Array<Plugin | [Plugin, any]>
131
134
 
132
135
  // Array of functions to mutate the md instance
@@ -143,7 +146,7 @@ Parses markdown content into a structured node tree.
143
146
 
144
147
  **Parameters:**
145
148
  - `content` (string): The markdown content to parse
146
- - `md` (MarkdownIt, optional): A markdown-it instance. If not provided, creates one using `getMarkdown()`
149
+ - `md` (MarkdownItCore, optional): A markdown-it-ts instance. If not provided, creates one using `getMarkdown()`
147
150
  - `options` (ParseOptions, optional): Parsing options with hooks
148
151
 
149
152
  **Returns:** `ParsedNode[]` - An array of parsed nodes
@@ -154,7 +157,7 @@ Processes raw markdown-it tokens into a flat array.
154
157
 
155
158
  #### `parseInlineTokens(tokens, md)`
156
159
 
157
- Parses inline markdown-it tokens.
160
+ Parses inline markdown-it-ts tokens.
158
161
 
159
162
  ### Configuration Functions
160
163
 
package/README.zh-CN.md CHANGED
@@ -19,6 +19,8 @@
19
19
  - ⚡ **高性能** - 性能优化
20
20
  - 🌊 **流式友好** - 支持渐进式解析
21
21
 
22
+ > ℹ️ 自当前版本起我们基于 [`markdown-it-ts`](https://www.npmjs.com/package/markdown-it-ts)(一个 TypeScript 优先的 markdown-it 发行版)进行构建。API 与 markdown-it 保持一致,但内部仅依赖其解析流程,并提供更丰富的 token 类型定义。
23
+
22
24
  ## 安装
23
25
 
24
26
  ```bash
@@ -36,16 +38,16 @@ yarn add stream-markdown-parser
36
38
  ```typescript
37
39
  import { getMarkdown, parseMarkdownToStructure } from 'stream-markdown-parser'
38
40
 
39
- // 创建一个带有默认插件的 markdown-it 实例
41
+ // 创建一个带有默认插件的 markdown-it-ts 实例
40
42
  const md = getMarkdown()
41
43
 
42
- // 将 Markdown 解析为 HTML
43
- const html = md.render('# Hello World\n\nThis is **bold**.')
44
-
45
- // 或解析为 AST 结构
44
+ // 将 Markdown 解析为流式友好的 AST 结构
46
45
  const nodes = parseMarkdownToStructure('# Hello World', md)
47
46
  console.log(nodes)
48
47
  // [{ type: 'heading', level: 1, children: [...] }]
48
+
49
+ // 如果仍需 HTML 输出,markdown-it-ts 依旧提供 render()
50
+ const html = md.render?.('# Hello World\n\nThis is **bold**.')
49
51
  ```
50
52
 
51
53
  ### 配置数学公式选项
@@ -117,7 +119,7 @@ const md = getMarkdown('editor-1', {
117
119
 
118
120
  #### `getMarkdown(msgId?, options?)`
119
121
 
120
- 创建一个配置好的 markdown-it 实例。
122
+ 创建一个配置好的 `markdown-it-ts` 实例(与 markdown-it API 兼容)。
121
123
 
122
124
  **参数:**
123
125
  - `msgId` (string, 可选): 该实例的唯一标识符。默认值:`editor-${Date.now()}`
@@ -126,7 +128,7 @@ const md = getMarkdown('editor-1', {
126
128
  **选项:**
127
129
  ```typescript
128
130
  interface GetMarkdownOptions {
129
- // 要使用的 markdown-it 插件数组
131
+ // 要使用的 markdown-it / markdown-it-ts 插件数组
130
132
  plugin?: Array<Plugin | [Plugin, any]>
131
133
 
132
134
  // 修改 md 实例的函数数组
@@ -143,7 +145,7 @@ interface GetMarkdownOptions {
143
145
 
144
146
  **参数:**
145
147
  - `content` (string): 要解析的 Markdown 内容
146
- - `md` (MarkdownIt, 可选): markdown-it 实例。如果未提供,则使用 `getMarkdown()` 创建
148
+ - `md` (MarkdownItCore, 可选): markdown-it-ts 实例。如果未提供,则使用 `getMarkdown()` 创建
147
149
  - `options` (ParseOptions, 可选): 带有钩子的解析选项
148
150
 
149
151
  **返回值:** `ParsedNode[]` - 解析后的节点数组
@@ -154,7 +156,7 @@ interface GetMarkdownOptions {
154
156
 
155
157
  #### `parseInlineTokens(tokens, md)`
156
158
 
157
- 解析内联 markdown-it tokens。
159
+ 解析内联 markdown-it-ts tokens。
158
160
 
159
161
  ### 配置函数
160
162
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import MarkdownIt from "markdown-it";
1
+ import { MarkdownIt as MarkdownIt$1, Token } from "markdown-it-ts";
2
2
 
3
3
  //#region src/factory.d.ts
4
4
  interface FactoryOptions extends Record<string, unknown> {
@@ -57,6 +57,10 @@ interface CodeBlockNode extends BaseNode {
57
57
  updatedCode?: string;
58
58
  raw: string;
59
59
  }
60
+ interface HtmlBlockNode extends BaseNode {
61
+ type: 'html_block';
62
+ content: string;
63
+ }
60
64
  interface InlineCodeNode extends BaseNode {
61
65
  type: 'inline_code';
62
66
  code: string;
@@ -190,20 +194,28 @@ interface ReferenceNode extends BaseNode {
190
194
  type: 'reference';
191
195
  id: string;
192
196
  }
193
- interface MarkdownToken {
197
+ interface MarkdownTokenLite {
194
198
  type: string;
195
199
  tag?: string;
196
200
  content?: string;
197
201
  info?: string;
198
- loading?: boolean;
199
- children?: MarkdownToken[];
200
- attrs?: [string, string][];
201
202
  markup?: string;
202
203
  meta?: unknown;
203
- map?: [number, number];
204
+ map?: [number, number] | number[] | null;
205
+ block?: boolean;
206
+ hidden?: boolean;
207
+ attrs?: [string, string][] | null;
208
+ nesting?: number;
209
+ level?: number;
210
+ children?: MarkdownToken[] | null;
211
+ loading?: boolean;
204
212
  raw?: string;
205
213
  }
206
- type ParsedNode = TextNode | HeadingNode | ParagraphNode | ListNode | ListItemNode | CodeBlockNode | InlineCodeNode | LinkNode | ImageNode | ThematicBreakNode | BlockquoteNode | TableNode | TableRowNode | TableCellNode | StrongNode | EmphasisNode | StrikethroughNode | HighlightNode | InsertNode | SubscriptNode | SuperscriptNode | CheckboxNode | CheckboxInputNode | EmojiNode | DefinitionListNode | DefinitionItemNode | FootnoteNode | FootnoteReferenceNode | AdmonitionNode | HardBreakNode | MathInlineNode | MathBlockNode | ReferenceNode | Record<string, unknown>;
214
+ type MarkdownToken = (Token & {
215
+ loading?: boolean;
216
+ raw?: string;
217
+ }) | MarkdownTokenLite;
218
+ type ParsedNode = TextNode | HeadingNode | ParagraphNode | ListNode | ListItemNode | CodeBlockNode | InlineCodeNode | LinkNode | ImageNode | ThematicBreakNode | BlockquoteNode | TableNode | TableRowNode | TableCellNode | StrongNode | EmphasisNode | StrikethroughNode | HighlightNode | InsertNode | SubscriptNode | SuperscriptNode | CheckboxNode | CheckboxInputNode | EmojiNode | DefinitionListNode | DefinitionItemNode | FootnoteNode | FootnoteReferenceNode | AdmonitionNode | HardBreakNode | MathInlineNode | MathBlockNode | ReferenceNode | HtmlBlockNode | Record<string, unknown>;
207
219
  interface CustomComponents {
208
220
  text: unknown;
209
221
  paragraph: unknown;
@@ -247,7 +259,7 @@ type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
247
259
  declare function parseInlineTokens(tokens: MarkdownToken[], raw?: string, pPreToken?: MarkdownToken): ParsedNode[];
248
260
  //#endregion
249
261
  //#region src/parser/index.d.ts
250
- declare function parseMarkdownToStructure(markdown: string, md: MarkdownIt, options?: ParseOptions): ParsedNode[];
262
+ declare function parseMarkdownToStructure(markdown: string, md: MarkdownIt$1, options?: ParseOptions): ParsedNode[];
251
263
  declare function processTokens(tokens: MarkdownToken[]): ParsedNode[];
252
264
  //#endregion
253
265
  //#region src/config.d.ts
@@ -275,7 +287,7 @@ declare function findMatchingClose(src: string, startIdx: number, open: string,
275
287
  declare function parseFenceToken(token: MarkdownToken): CodeBlockNode;
276
288
  //#endregion
277
289
  //#region src/plugins/containers.d.ts
278
- declare function applyContainers(md: MarkdownIt): void;
290
+ declare function applyContainers(md: MarkdownIt$1): void;
279
291
  //#endregion
280
292
  //#region src/plugins/isMathLike.d.ts
281
293
  declare const TEX_BRACE_COMMANDS: string[];
@@ -285,21 +297,19 @@ declare function isMathLike(s: string): boolean;
285
297
  //#region src/plugins/math.d.ts
286
298
  declare const KATEX_COMMANDS: string[];
287
299
  declare function normalizeStandaloneBackslashT(s: string, opts?: MathOptions): string;
288
- declare function applyMath(md: MarkdownIt, mathOpts?: MathOptions): void;
300
+ declare function applyMath(md: MarkdownIt$1, mathOpts?: MathOptions): void;
289
301
  //#endregion
290
302
  //#region src/index.d.ts
291
303
  interface GetMarkdownOptions extends FactoryOptions {
292
304
  plugin?: Array<unknown>;
293
- apply?: Array<(md: MarkdownIt) => void>;
305
+ apply?: Array<(md: MarkdownIt$1) => void>;
294
306
  /**
295
307
  * Custom translation function or translation map for UI texts
296
308
  * @default { 'common.copy': 'Copy' }
297
309
  */
298
310
  i18n?: ((key: string) => string) | Record<string, string>;
299
311
  }
300
- declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
301
- declare function getCommonMarkdown(): MarkdownIt;
302
- declare function renderMarkdown(md: MarkdownIt, content: string): string;
312
+ declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt$1;
303
313
  //#endregion
304
- export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, ImageNode, InlineCodeNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose, getCommonMarkdown, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, renderMarkdown, setDefaultMathOptions };
314
+ export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, ImageNode, InlineCodeNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
305
315
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/findMatchingClose.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/findMatchingClose.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;UAYiB,cAAA,SAAuB;sBAClB;;EADL,gBAAA,CAAe,EAAA,OAAA;;;;ECVf,CAAA;AAQjB;;;UARiB,QAAA;;EDUA,GAAA,EAAA,MAAA;;;;ACVjB;AAQiB,UAAA,QAAA,SAAiB,QAAQ,CAAA;EAMzB,IAAA,EAAA,MAAA;EAOA,OAAA,EAAA,MAAA;EAMA,MAAA,CAAA,EAAA,OAAS;AAQ1B;AAKiB,UA1BA,WAAA,SAAoB,QA0BU,CAAA;EAiB9B,IAAA,EAAA,SAAA;EAKA,KAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAS;EAQT,QAAA,EAzDL,UAyDe,EAAA;AAO3B;AAIiB,UAjEA,aAAA,SAAsB,QAiEN,CAAA;EASrB,IAAA,EAAA,WAAc;EAST,QAAA,EAjFL,UAiFoB,EAAA;EAKf,aAAU,CAAA,EAAA,OAAA;;AAGnB,UArFS,QAAA,SAAiB,QAqF1B,CAAA;EAH2B,IAAA,EAAA,MAAA;EAAQ,OAAA,EAAA,OAAA;EAM1B,KAAA,CAAA,EAAA,MAAA;EAKA,KAAA,EAxFR,YAwFsB,EAAA;AAM/B;AAKiB,UAhGA,YAAA,SAAqB,QAgGF,CAAA;EAE5B,IAAA,EAAA,WAAA;EACM,QAAA,EAjGF,UAiGE,EAAA;;AAHsC,UA3FnC,aAAA,SAAsB,QA2Fa,CAAA;EAMnC,IAAA,EAAA,YAAa;EAMb,QAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAA;EAOA,SAAA,CAAA,EAAA,MAAW;EAKX,OAAA,CAAA,EAAA,MAAa;EAKb,OAAA,CAAA,EAAA,OAAA;EAKA,IAAA,CAAA,EAAA,OAAA;EAKA,YAAA,CAAW,EAAA,MAAA;EAKX,WAAA,CAAA,EAAA,MAAc;EAKd,GAAA,EAAA,MAAA;AAKjB;AAKiB,UA1IA,aAAA,SAAsB,QA0IY,CAAA;EAKlC,IAAA,EAAA,YAAU;EAMV,OAAA,EAAA,MAAA;AAIjB;AAKiB,UAzJA,cAAA,SAAuB,QAyJO,CAAA;EAK9B,IAAA,EAAA,aAAc;EAMd,IAAA,EAAA,MAAA;AAkBjB;AAEY,UAnLK,QAAA,SAAiB,QAmLZ,CAAA;EAChB,IAAA,EAAA,MAAA;EACA,IAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;EACA,IAAA,EAAA,MAAA;EACA,QAAA,EAnLM,UAmLN,EAAA;;AAEA,UAlLW,SAAA,SAAkB,QAkL7B,CAAA;EACA,IAAA,EAAA,OAAA;EACA,GAAA,EAAA,MAAA;EACA,GAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,IAAA;;AAEA,UAjLW,iBAAA,SAA0B,QAiLrC,CAAA;EACA,IAAA,EAAA,gBAAA;;AAEA,UAhLW,gBAAA,CAgLX;EACA,IAAA,EAAA;IACA,IAAA,EAAA,YAAA;IACA,QAAA,EAAA,MAAA;IACA,IAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,OAAA;EACA,CAAA;;AAEA,KA/KM,cAAA,GA+KN;EACA,OAAA,EAAA,MAAA;EACA,KAAA,CAAA,EAAA,SAAA;CACA,GAAA;EACA,OAAA,CAAA,EAAA,SAAA;EACA,KAAA,EA7KK,QA6KL,EAAA;CACA;AACA,UA7KW,cAAA,SAAuB,QA6KlC,CAAA;EACA,IAAA,EAAA,YAAA;EACA,QAAA,EA7KM,UA6KN,EAAA;;AAEA,UA5KW,SAAA,SAAkB,QA4K7B,CAAA;EAAM,IAAA,EAAA,OAAA;EACK,MAAA,EA3KP,YA2KuB;EAkCrB,IAAA,EA5MJ,YA4MI,EAAA;AAEZ;AAKY,UAhNK,YAAA,SAAqB,QAgNO,CAAA;;SA9MpC;;ACtFO,UDyFC,aAAA,SAAsB,QCzFN,CAAA;EAAS,IAAA,EAAA,YAAA;EAA2C,MAAA,EAAA,OAAA;EAAgB,QAAA,ED4FzF,UC5FyF,EAAA;;UD+FpF,kBAAA,SAA2B;;SAEnC;AE/GT;AAEM,UFgHW,kBAAA,SAA2B,QEhHtC,CAAA;EACK,IAAA,EAAA,iBAAA;EACR,IAAA,EFgHK,UEhHL,EAAA;EAAU,UAAA,EFiHC,UEjHD,EAAA;AAuDb;UF6DiB,YAAA,SAAqB;;;EGlIrB,QAAA,EHqIL,UGrIgB,EAAA;AAS5B;UH+HiB,qBAAA,SAA8B;;;AIjJ/C;UJsJiB,cAAA,SAAuB;;;EKzHxB,KAAA,EAAA,MAAA;YL6HJ;;UAGK,UAAA,SAAmB;EM1JpB,IAAA,EAAA,QAAA;YN4JJ;;UAGK,YAAA,SAAqB;EOlKzB,IAAA,EAAA,UAAA;EAqBA,QAAA,EP+ID,UO/IC,EAAA;AAuBb;UP2HiB,iBAAA,SAA0B;;YAE/B;AQxJZ;AA0FgB,URiEC,aAAA,SAAsB,QQjEM,CAAmB;EAwDhD,IAAA,EAAA,WAAS;YRWb;;UAGK,UAAA,SAAmB;ES7InB,IAAA,EAAA,QAAA;EACN,QAAA,ET8IC,US9ID,EAAA;;AACD,UTgJO,aAAA,SAAsB,QShJ7B,CAAA;EAK2B,IAAA,EAAA,WAAA;EAPO,QAAA,EToJhC,USpJgC,EAAA;;AAU5B,UT6IC,eAAA,SAAwB,QS7I2D,CAAA;;YT+IxF;;UAGK,YAAA,SAAqB;;;;UAKrB,iBAAA,SAA0B;;;;UAK1B,SAAA,SAAkB;;;;;UAMlB,aAAA,SAAsB;;;UAItB,cAAA,SAAuB;;;;UAKvB,aAAA,SAAsB;;;;UAKtB,aAAA,SAAsB;;;;UAMtB,iBAAA;;;;;;;;;;;;;aAaJ;;;;KAKD,aAAA,IAAiB;;;KAA+C;KAEhE,UAAA,GACN,WACA,cACA,gBACA,WACA,eACA,gBACA,iBACA,WACA,YACA,oBACA,iBACA,YACA,eACA,gBACA,aACA,eACA,oBACA,gBACA,aACA,gBACA,kBACA,eACA,oBACA,YACA,qBACA,qBACA,eACA,wBACA,iBACA,gBACA,iBACA,gBACA,gBACA,gBACA;UACW,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCL,mBAAA,YAA+B,oBAAoB;UAE9C,YAAA;uBACM;wBACC;;KAGZ,sBAAA,WAAiC,iBAAiB;;;iBCpS9C,iBAAA,SAA0B,2CAA2C,gBAAgB;;;AFrBpF,iBGOD,wBAAA,CHP8B,QAAA,EAAA,MAAA,EAAA,EAAA,EGSxC,YHTwC,EAAA,OAAA,CAAA,EGUnC,YHVmC,CAAA,EGW3C,UHX2C,EAAA;iBGkE9B,aAAA,SAAsB,kBAAkB;;;;;;AHlExD;;;;ACVA;AAQA;AAMiB,UGPA,WAAA,CHOY;EAOZ;EAMA,QAAA,CAAA,EAAS,SAAA,MAKjB,EAAA;EAGQ;EAKA,iBAAc,CAAA,EAAA,OAAA;AAiB/B;AAKiB,iBG9CD,qBAAA,CH8CgC,IAAA,EG9CJ,WH8CI,GAAA,SAAA,CAAA,EAAA,IAAA;;;iBIhEhC,iBAAA;;;iBC6BA,eAAA,QAAuB,gBAAgB;;;iBC1BvC,eAAA,KAAoB;;;cCHvB;cAqBA;iBAuBG,UAAA;;;cC3BH;iBA0FG,6BAAA,mBAAgD;iBAwDhD,SAAA,KAAc,yBAAuB;;;AR9HpC,USDA,kBAAA,SAA2B,cTCE,CAAA;EAK7B,MAAA,CAAA,ESLN,KTKM,CAAA,OAAc,CAAA;EAiBd,KAAA,CAAA,ESrBP,KTqBO,CAAA,CAAA,EAAc,ESrBV,YTqBkB,EAAA,GAAA,IAAQ,CAAA;EAK9B;AAKjB;AAQA;AAOA;EAIiB,IAAA,CAAA,EAAA,CAAA,CAAA,GAAA,EAAA,MAAgB,EAAA,GAAA,MAAA,CAAA,GS7CI,MT6CJ,CAAA,MAAA,EAAA,MAAA,CAAA;AASjC;AASiB,iBS5DD,WAAA,CT8DJ,KAF4B,CAE5B,EAAA,MAF4B,EAAA,OAAQ,CAAA,ES5D6B,kBT4D7B,CAAA,ES5DoD,YT4DpD"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import MarkdownIt from "markdown-it";
2
1
  import { full } from "markdown-it-emoji";
3
2
  import markdownItFootnote from "markdown-it-footnote";
4
3
  import markdownItIns from "markdown-it-ins";
@@ -6,6 +5,7 @@ import markdownItMark from "markdown-it-mark";
6
5
  import markdownItSub from "markdown-it-sub";
7
6
  import markdownItSup from "markdown-it-sup";
8
7
  import * as markdownItCheckbox from "markdown-it-task-checkbox";
8
+ import MarkdownIt from "markdown-it-ts";
9
9
  import markdownItContainer from "markdown-it-container";
10
10
 
11
11
  //#region src/config.ts
@@ -972,6 +972,7 @@ function factory(opts = {}) {
972
972
  html: true,
973
973
  linkify: true,
974
974
  typographer: true,
975
+ stream: true,
975
976
  ...opts.markdownItOptions ?? {}
976
977
  });
977
978
  if (opts.enableMath ?? true) applyMath(md, {
@@ -2521,6 +2522,17 @@ function parseHardBreak() {
2521
2522
  };
2522
2523
  }
2523
2524
 
2525
+ //#endregion
2526
+ //#region src/parser/node-parsers/html-block-parser.ts
2527
+ function parseHtmlBlock(token) {
2528
+ return {
2529
+ type: "html_block",
2530
+ content: String(token.content ?? ""),
2531
+ raw: String(token.content ?? ""),
2532
+ loading: false
2533
+ };
2534
+ }
2535
+
2524
2536
  //#endregion
2525
2537
  //#region src/parser/node-parsers/paragraph-parser.ts
2526
2538
  function parseParagraph(tokens, index) {
@@ -2545,7 +2557,7 @@ function parseMarkdownToStructure(markdown, md, options = {}) {
2545
2557
  const pre = options.preTransformTokens;
2546
2558
  const post = options.postTransformTokens;
2547
2559
  let transformedTokens = tokens;
2548
- if (pre && typeof pre === "function") transformedTokens = pre(tokens) || tokens;
2560
+ if (pre && typeof pre === "function") transformedTokens = pre(transformedTokens) || transformedTokens;
2549
2561
  let result = processTokens(transformedTokens);
2550
2562
  if (post && typeof post === "function") {
2551
2563
  const postResult = post(transformedTokens);
@@ -2586,6 +2598,7 @@ function processTokens(tokens) {
2586
2598
  i += 3;
2587
2599
  break;
2588
2600
  case "html_block":
2601
+ result.push(parseHtmlBlock(token));
2589
2602
  i += 1;
2590
2603
  break;
2591
2604
  case "code_block":
@@ -2765,18 +2778,7 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
2765
2778
  };
2766
2779
  return md;
2767
2780
  }
2768
- function getCommonMarkdown() {
2769
- return new MarkdownIt({
2770
- html: true,
2771
- linkify: true,
2772
- typographer: true,
2773
- breaks: false
2774
- });
2775
- }
2776
- function renderMarkdown(md, content) {
2777
- return md.render(content);
2778
- }
2779
2781
 
2780
2782
  //#endregion
2781
- export { ESCAPED_TEX_BRACE_COMMANDS, KATEX_COMMANDS, TEX_BRACE_COMMANDS, applyContainers, applyMath, findMatchingClose, getCommonMarkdown, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, renderMarkdown, setDefaultMathOptions };
2783
+ export { ESCAPED_TEX_BRACE_COMMANDS, KATEX_COMMANDS, TEX_BRACE_COMMANDS, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
2782
2784
  //# sourceMappingURL=index.js.map