stream-markdown-parser 0.0.58 → 0.0.59-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
@@ -254,6 +254,10 @@ interface ParseOptions {
254
254
  preTransformTokens?: (tokens: Token[]) => Token[]
255
255
  postTransformTokens?: (tokens: Token[]) => Token[]
256
256
  postTransformNodes?: (nodes: ParsedNode[]) => ParsedNode[]
257
+ // Custom HTML-like tags to emit as custom nodes (e.g. ['thinking'])
258
+ customHtmlTags?: string[]
259
+ // Force specific tags to render as literal text (e.g. ['question', 'answer'])
260
+ escapeHtmlTags?: string[]
257
261
  }
258
262
  ```
259
263
 
@@ -273,6 +277,21 @@ const parseOptions = {
273
277
 
274
278
  Use the metadata in your renderer to show custom UI without mangling the original Markdown.
275
279
 
280
+ Example — escape placeholder tags as literal text:
281
+
282
+ ```ts
283
+ // If upstream content contains placeholder tags like <question> or <analysis>
284
+ // that should be displayed as plain text instead of being interpreted as HTML:
285
+ const nodes = parseMarkdownToStructure('<question>What is 2+2?</question>', md, {
286
+ escapeHtmlTags: ['question', 'answer']
287
+ })
288
+ // Renders as literal text: "<question>What is 2+2?</question>"
289
+ ```
290
+
291
+ Notes:
292
+ - If a tag name is present in both `customHtmlTags` and `escapeHtmlTags`, `escapeHtmlTags` takes precedence
293
+ - Tag names are case-insensitive (normalized to lowercase)
294
+
276
295
  ### Utility Functions
277
296
 
278
297
  #### `isMathLike(content)`
package/README.zh-CN.md CHANGED
@@ -253,10 +253,14 @@ interface ParseOptions {
253
253
  preTransformTokens?: (tokens: Token[]) => Token[]
254
254
  postTransformTokens?: (tokens: Token[]) => Token[]
255
255
  postTransformNodes?: (nodes: ParsedNode[]) => ParsedNode[]
256
+ // 自定义 HTML 类标签,作为自定义节点输出(如 ['thinking'])
257
+ customHtmlTags?: string[]
258
+ // 强制指定标签渲染为纯文本(如 ['question', 'answer'])
259
+ escapeHtmlTags?: string[]
256
260
  }
257
261
  ```
258
262
 
259
- 示例 —— 标记 AI “思考” 块:
263
+ 示例 —— 标记 AI "思考" 块:
260
264
 
261
265
  ```ts
262
266
  const parseOptions = {
@@ -272,6 +276,21 @@ const parseOptions = {
272
276
 
273
277
  在渲染器中读取 `node.meta` 即可渲染自定义 UI,而无需直接修改 Markdown 文本。
274
278
 
279
+ 示例 —— 将占位符标签转义为纯文本:
280
+
281
+ ```ts
282
+ // 如果上游内容包含占位符标签如 <question> 或 <analysis>,
283
+ // 希望将它们显示为纯文本而不是被解释为 HTML:
284
+ const nodes = parseMarkdownToStructure('<question>2+2 等于几?</question>', md, {
285
+ escapeHtmlTags: ['question', 'answer']
286
+ })
287
+ // 渲染为纯文本:"<question>2+2 等于几?</question>"
288
+ ```
289
+
290
+ 注意:
291
+ - 如果一个标签名同时存在于 `customHtmlTags` 和 `escapeHtmlTags`,`escapeHtmlTags` 优先
292
+ - 标签名不区分大小写(会规范化为小写)
293
+
275
294
  ### 工具函数
276
295
 
277
296
  #### `isMathLike(content)`
package/dist/index.d.ts CHANGED
@@ -334,6 +334,19 @@ interface ParseOptions {
334
334
  * to enable mid-state suppression for the same tags during streaming.
335
335
  */
336
336
  customHtmlTags?: string[];
337
+ /**
338
+ * HTML-like tag names that should be rendered as literal text instead of
339
+ * `html_inline`/`html_block` nodes (e.g. ['question', 'analysis']).
340
+ *
341
+ * Useful when upstream content may contain placeholder tags like `<question>`
342
+ * but you want them to display as plain text rather than being interpreted
343
+ * as HTML.
344
+ *
345
+ * Note: this applies to both inline and block HTML tokens. If a tag name is
346
+ * present in both `customHtmlTags` and `escapeHtmlTags`, `escapeHtmlTags`
347
+ * takes precedence.
348
+ */
349
+ escapeHtmlTags?: string[];
337
350
  debug?: boolean;
338
351
  }
339
352
  type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
@@ -342,6 +355,7 @@ type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
342
355
  declare function parseInlineTokens(tokens: MarkdownToken[], raw?: string, pPreToken?: MarkdownToken, options?: {
343
356
  requireClosingStrong?: boolean;
344
357
  customHtmlTags?: readonly string[];
358
+ escapeHtmlTags?: readonly string[];
345
359
  }): ParsedNode[];
346
360
  //#endregion
347
361
  //#region src/parser/index.d.ts
@@ -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":"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"}
package/dist/index.js CHANGED
@@ -9128,7 +9128,8 @@ function parseEmphasisToken(tokens, startIndex, options) {
9128
9128
  }
9129
9129
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9130
9130
  requireClosingStrong: options?.requireClosingStrong,
9131
- customHtmlTags: options?.customHtmlTags
9131
+ customHtmlTags: options?.customHtmlTags,
9132
+ escapeHtmlTags: options?.escapeHtmlTags
9132
9133
  }));
9133
9134
  return {
9134
9135
  node: {
@@ -9239,7 +9240,8 @@ function parseHighlightToken(tokens, startIndex, options) {
9239
9240
  }
9240
9241
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9241
9242
  requireClosingStrong: options?.requireClosingStrong,
9242
- customHtmlTags: options?.customHtmlTags
9243
+ customHtmlTags: options?.customHtmlTags,
9244
+ escapeHtmlTags: options?.escapeHtmlTags
9243
9245
  }));
9244
9246
  return {
9245
9247
  node: {
@@ -9285,6 +9287,12 @@ function normalizeCustomTag(t) {
9285
9287
  const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
9286
9288
  return m ? m[1].toLowerCase() : "";
9287
9289
  }
9290
+ function normalizeTagName$1(t) {
9291
+ const raw = String(t ?? "").trim();
9292
+ if (!raw) return "";
9293
+ const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
9294
+ return m ? m[1].toLowerCase() : "";
9295
+ }
9288
9296
  function tokenToRaw(token) {
9289
9297
  const shape = token;
9290
9298
  const raw = shape.raw ?? shape.content ?? shape.markup ?? "";
@@ -9341,11 +9349,21 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
9341
9349
  const tag = getTagName(code$1);
9342
9350
  const customTags = options?.customHtmlTags;
9343
9351
  const customTagSet = customTags && customTags.length ? new Set(customTags.map(normalizeCustomTag).filter(Boolean)) : null;
9352
+ const escapeTags = options?.escapeHtmlTags;
9353
+ const escapeTagSet = escapeTags && escapeTags.length ? new Set(escapeTags.map(normalizeTagName$1).filter(Boolean)) : null;
9344
9354
  if (!tag) return [{
9345
9355
  type: "inline_code",
9346
9356
  code: code$1,
9347
9357
  raw: code$1
9348
9358
  }, i + 1];
9359
+ if (escapeTagSet?.has(tag)) {
9360
+ const content$1 = tokenToRaw(token);
9361
+ return [{
9362
+ type: "text",
9363
+ content: content$1,
9364
+ raw: content$1
9365
+ }, i + 1];
9366
+ }
9349
9367
  if (tag === "br") return [{
9350
9368
  type: "hardbreak",
9351
9369
  raw: code$1
@@ -9495,7 +9513,8 @@ function parseInsertToken(tokens, startIndex, options) {
9495
9513
  }
9496
9514
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9497
9515
  requireClosingStrong: options?.requireClosingStrong,
9498
- customHtmlTags: options?.customHtmlTags
9516
+ customHtmlTags: options?.customHtmlTags,
9517
+ escapeHtmlTags: options?.escapeHtmlTags
9499
9518
  }));
9500
9519
  return {
9501
9520
  node: {
@@ -9524,7 +9543,8 @@ function parseLinkToken(tokens, startIndex, options) {
9524
9543
  if (tokens[i]?.type === "link_close") loading = false;
9525
9544
  const children = parseInlineTokens(linkTokens, void 0, void 0, {
9526
9545
  requireClosingStrong: options?.requireClosingStrong,
9527
- customHtmlTags: options?.customHtmlTags
9546
+ customHtmlTags: options?.customHtmlTags,
9547
+ escapeHtmlTags: options?.escapeHtmlTags
9528
9548
  });
9529
9549
  const linkText = children.map((node) => {
9530
9550
  const nodeAny = node;
@@ -9582,7 +9602,8 @@ function parseStrikethroughToken(tokens, startIndex, options) {
9582
9602
  }
9583
9603
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9584
9604
  requireClosingStrong: options?.requireClosingStrong,
9585
- customHtmlTags: options?.customHtmlTags
9605
+ customHtmlTags: options?.customHtmlTags,
9606
+ escapeHtmlTags: options?.escapeHtmlTags
9586
9607
  }));
9587
9608
  return {
9588
9609
  node: {
@@ -9614,7 +9635,8 @@ function parseStrongToken(tokens, startIndex, raw, options) {
9614
9635
  }
9615
9636
  children.push(...parseInlineTokens(innerTokens, raw, void 0, {
9616
9637
  requireClosingStrong: options?.requireClosingStrong,
9617
- customHtmlTags: options?.customHtmlTags
9638
+ customHtmlTags: options?.customHtmlTags,
9639
+ escapeHtmlTags: options?.escapeHtmlTags
9618
9640
  }));
9619
9641
  return {
9620
9642
  node: {
@@ -9640,7 +9662,8 @@ function parseSubscriptToken(tokens, startIndex, options) {
9640
9662
  }
9641
9663
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9642
9664
  requireClosingStrong: options?.requireClosingStrong,
9643
- customHtmlTags: options?.customHtmlTags
9665
+ customHtmlTags: options?.customHtmlTags,
9666
+ escapeHtmlTags: options?.escapeHtmlTags
9644
9667
  }));
9645
9668
  const startContent = String(tokens[startIndex].content ?? "");
9646
9669
  const display = subText || startContent;
@@ -9672,7 +9695,8 @@ function parseSuperscriptToken(tokens, startIndex, options) {
9672
9695
  }
9673
9696
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9674
9697
  requireClosingStrong: options?.requireClosingStrong,
9675
- customHtmlTags: options?.customHtmlTags
9698
+ customHtmlTags: options?.customHtmlTags,
9699
+ escapeHtmlTags: options?.escapeHtmlTags
9676
9700
  }));
9677
9701
  return {
9678
9702
  node: {
@@ -10475,7 +10499,8 @@ function parseList(tokens, index, options) {
10475
10499
  type: "paragraph",
10476
10500
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), preToken, {
10477
10501
  requireClosingStrong: options?.requireClosingStrong,
10478
- customHtmlTags: options?.customHtmlTags
10502
+ customHtmlTags: options?.customHtmlTags,
10503
+ escapeHtmlTags: options?.escapeHtmlTags
10479
10504
  }),
10480
10505
  raw: String(contentToken.content ?? "")
10481
10506
  });
@@ -10532,7 +10557,8 @@ function parseAdmonition(tokens, index, match, options) {
10532
10557
  type: "paragraph",
10533
10558
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10534
10559
  requireClosingStrong: options?.requireClosingStrong,
10535
- customHtmlTags: options?.customHtmlTags
10560
+ customHtmlTags: options?.customHtmlTags,
10561
+ escapeHtmlTags: options?.escapeHtmlTags
10536
10562
  }),
10537
10563
  raw: String(contentToken.content ?? "")
10538
10564
  });
@@ -10604,7 +10630,8 @@ function parseContainer(tokens, index, options) {
10604
10630
  type: "paragraph",
10605
10631
  children: parseInlineTokens(_children || [], void 0, void 0, {
10606
10632
  requireClosingStrong: options?.requireClosingStrong,
10607
- customHtmlTags: options?.customHtmlTags
10633
+ customHtmlTags: options?.customHtmlTags,
10634
+ escapeHtmlTags: options?.escapeHtmlTags
10608
10635
  }),
10609
10636
  raw: String(contentToken.content ?? "").replace(/\n:+$/, "").replace(/\n\s*:::\s*$/, "")
10610
10637
  });
@@ -10661,7 +10688,8 @@ function parseBlockquote(tokens, index, options) {
10661
10688
  type: "paragraph",
10662
10689
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10663
10690
  requireClosingStrong: options?.requireClosingStrong,
10664
- customHtmlTags: options?.customHtmlTags
10691
+ customHtmlTags: options?.customHtmlTags,
10692
+ escapeHtmlTags: options?.escapeHtmlTags
10665
10693
  }),
10666
10694
  raw: String(contentToken.content ?? "")
10667
10695
  });
@@ -10725,7 +10753,8 @@ function parseDefinitionList(tokens, index, options) {
10725
10753
  const termToken = tokens[j + 1];
10726
10754
  termNodes = parseInlineTokens(termToken.children || [], void 0, void 0, {
10727
10755
  requireClosingStrong: options?.requireClosingStrong,
10728
- customHtmlTags: options?.customHtmlTags
10756
+ customHtmlTags: options?.customHtmlTags,
10757
+ escapeHtmlTags: options?.escapeHtmlTags
10729
10758
  });
10730
10759
  j += 3;
10731
10760
  } else if (tokens[j].type === "dd_open") {
@@ -10737,7 +10766,8 @@ function parseDefinitionList(tokens, index, options) {
10737
10766
  type: "paragraph",
10738
10767
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10739
10768
  requireClosingStrong: options?.requireClosingStrong,
10740
- customHtmlTags: options?.customHtmlTags
10769
+ customHtmlTags: options?.customHtmlTags,
10770
+ escapeHtmlTags: options?.escapeHtmlTags
10741
10771
  }),
10742
10772
  raw: String(contentToken.content ?? "")
10743
10773
  });
@@ -10776,7 +10806,8 @@ function parseFootnote(tokens, index, options) {
10776
10806
  type: "paragraph",
10777
10807
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10778
10808
  requireClosingStrong: options?.requireClosingStrong,
10779
- customHtmlTags: options?.customHtmlTags
10809
+ customHtmlTags: options?.customHtmlTags,
10810
+ escapeHtmlTags: options?.escapeHtmlTags
10780
10811
  }),
10781
10812
  raw: String(contentToken.content ?? "")
10782
10813
  });
@@ -10807,7 +10838,8 @@ function parseHeading(tokens, index, options) {
10807
10838
  ...attrsRecord ? { attrs: attrsRecord } : {},
10808
10839
  children: parseInlineTokens(headingContentToken.children || [], headingContent, void 0, {
10809
10840
  requireClosingStrong: options?.requireClosingStrong,
10810
- customHtmlTags: options?.customHtmlTags
10841
+ customHtmlTags: options?.customHtmlTags,
10842
+ escapeHtmlTags: options?.escapeHtmlTags
10811
10843
  }),
10812
10844
  raw: headingContent
10813
10845
  };
@@ -10921,7 +10953,8 @@ function parseTable(tokens, index, options) {
10921
10953
  header: isHeaderCell || isHeader,
10922
10954
  children: parseInlineTokens(contentToken.children || [], content, void 0, {
10923
10955
  requireClosingStrong: options?.requireClosingStrong,
10924
- customHtmlTags: options?.customHtmlTags
10956
+ customHtmlTags: options?.customHtmlTags,
10957
+ escapeHtmlTags: options?.escapeHtmlTags
10925
10958
  }),
10926
10959
  raw: content,
10927
10960
  align
@@ -10989,7 +11022,8 @@ function parseVmrContainer(tokens, index, options) {
10989
11022
  type: "paragraph",
10990
11023
  children: parseInlineTokens(childrenArr || [], void 0, void 0, {
10991
11024
  requireClosingStrong: options?.requireClosingStrong,
10992
- customHtmlTags: options?.customHtmlTags
11025
+ customHtmlTags: options?.customHtmlTags,
11026
+ escapeHtmlTags: options?.escapeHtmlTags
10993
11027
  }),
10994
11028
  raw: String(contentToken.content ?? "")
10995
11029
  });
@@ -11143,6 +11177,27 @@ function parseBasicBlockToken(tokens, index, options) {
11143
11177
  case "math_block": return [parseMathBlock(token), index + 1];
11144
11178
  case "html_block": {
11145
11179
  const htmlBlockNode = parseHtmlBlock(token);
11180
+ const escapeTags = options?.escapeHtmlTags;
11181
+ if (escapeTags?.length && htmlBlockNode.tag) {
11182
+ const normalizeTagName$2 = (t) => {
11183
+ const raw = String(t ?? "").trim();
11184
+ if (!raw) return "";
11185
+ const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
11186
+ return m ? m[1].toLowerCase() : "";
11187
+ };
11188
+ if (new Set(escapeTags.map(normalizeTagName$2).filter(Boolean)).has(htmlBlockNode.tag)) {
11189
+ const content = String(token?.content ?? "").replace(/\n+$/, "");
11190
+ return [{
11191
+ type: "paragraph",
11192
+ children: [{
11193
+ type: "text",
11194
+ content,
11195
+ raw: content
11196
+ }],
11197
+ raw: content
11198
+ }, index + 1];
11199
+ }
11200
+ }
11146
11201
  if (options?.customHtmlTags && htmlBlockNode.tag) {
11147
11202
  if (new Set(options.customHtmlTags.map((t) => {
11148
11203
  const m = String(t ?? "").trim().match(/^[<\s/]*([A-Z][\w-]*)/i);
@@ -11244,7 +11299,8 @@ function parseParagraph(tokens, index, options) {
11244
11299
  type: "paragraph",
11245
11300
  children: parseInlineTokens(paragraphContentToken.children || [], paragraphContent, void 0, {
11246
11301
  requireClosingStrong: options?.requireClosingStrong,
11247
- customHtmlTags: options?.customHtmlTags
11302
+ customHtmlTags: options?.customHtmlTags,
11303
+ escapeHtmlTags: options?.escapeHtmlTags
11248
11304
  }),
11249
11305
  raw: paragraphContent
11250
11306
  };
@@ -11252,6 +11308,85 @@ function parseParagraph(tokens, index, options) {
11252
11308
 
11253
11309
  //#endregion
11254
11310
  //#region src/parser/index.ts
11311
+ function normalizeTagName(t) {
11312
+ const raw = String(t ?? "").trim();
11313
+ if (!raw) return "";
11314
+ const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
11315
+ return m ? m[1].toLowerCase() : "";
11316
+ }
11317
+ function applyEscapeHtmlTags(nodes, options) {
11318
+ const escapeTags = options?.escapeHtmlTags;
11319
+ if (!escapeTags?.length) return nodes;
11320
+ const escapeTagSet = new Set(escapeTags.map(normalizeTagName).filter(Boolean));
11321
+ if (!escapeTagSet.size) return nodes;
11322
+ const INLINE_CHILD_CONTAINERS = new Set([
11323
+ "paragraph",
11324
+ "heading",
11325
+ "inline",
11326
+ "link",
11327
+ "strong",
11328
+ "emphasis",
11329
+ "strikethrough",
11330
+ "highlight",
11331
+ "insert",
11332
+ "subscript",
11333
+ "superscript",
11334
+ "table_cell"
11335
+ ]);
11336
+ const toInlineText = (raw) => {
11337
+ const content = raw.replace(/\n+$/, "");
11338
+ return {
11339
+ type: "text",
11340
+ content,
11341
+ raw: content
11342
+ };
11343
+ };
11344
+ const toParagraphText = (raw) => {
11345
+ const content = raw.replace(/\n+$/, "");
11346
+ return {
11347
+ type: "paragraph",
11348
+ raw: content,
11349
+ children: content ? [toInlineText(content)] : []
11350
+ };
11351
+ };
11352
+ const transformNode = (node, context) => {
11353
+ const n = node;
11354
+ const tag = typeof n?.tag === "string" ? String(n.tag).toLowerCase() : "";
11355
+ if (tag && escapeTagSet.has(tag)) {
11356
+ const raw = String(n?.raw ?? n?.content ?? "");
11357
+ return context === "inline" ? toInlineText(raw) : toParagraphText(raw);
11358
+ }
11359
+ if ((n?.type === "html_inline" || n?.type === "html_block") && typeof n?.tag === "string") {
11360
+ const htmlTag = String(n.tag).toLowerCase();
11361
+ if (htmlTag && escapeTagSet.has(htmlTag)) {
11362
+ const raw = String(n?.raw ?? n?.content ?? "");
11363
+ return n.type === "html_inline" ? toInlineText(raw) : toParagraphText(raw);
11364
+ }
11365
+ }
11366
+ const nextContextForChildren = context === "inline" || INLINE_CHILD_CONTAINERS.has(String(n?.type)) ? "inline" : "block";
11367
+ if (Array.isArray(n?.children)) {
11368
+ const nextChildren = n.children.map((child) => transformNode(child, nextContextForChildren));
11369
+ if (nextChildren !== n.children) n.children = nextChildren;
11370
+ }
11371
+ if (n?.type === "list" && Array.isArray(n.items)) n.items = n.items.map((item) => transformNode(item, "block"));
11372
+ else if (n?.type === "list_item" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "block"));
11373
+ else if (n?.type === "blockquote" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "block"));
11374
+ else if (n?.type === "table") {
11375
+ if (n.header) n.header = transformNode(n.header, "block");
11376
+ if (Array.isArray(n.rows)) n.rows = n.rows.map((row) => transformNode(row, "block"));
11377
+ } else if (n?.type === "table_row" && Array.isArray(n.cells)) n.cells = n.cells.map((cell) => transformNode(cell, "block"));
11378
+ else if (n?.type === "table_cell" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "inline"));
11379
+ else if (n?.type === "definition_list" && Array.isArray(n.items)) n.items = n.items.map((item) => transformNode(item, "block"));
11380
+ else if (n?.type === "definition_item") {
11381
+ if (Array.isArray(n.term)) n.term = n.term.map((child) => transformNode(child, "inline"));
11382
+ if (Array.isArray(n.definition)) n.definition = n.definition.map((child) => transformNode(child, "block"));
11383
+ } else if (n?.type === "footnote" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "block"));
11384
+ else if (n?.type === "admonition" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "block"));
11385
+ else if (n?.type === "vmr_container" && Array.isArray(n.children)) n.children = n.children.map((child) => transformNode(child, "block"));
11386
+ return node;
11387
+ };
11388
+ return nodes.map((node) => transformNode(node, "block"));
11389
+ }
11255
11390
  function stripDanglingHtmlLikeTail(markdown) {
11256
11391
  const isWs = (ch) => ch === " " || ch === " " || ch === "\n" || ch === "\r";
11257
11392
  const isLikelyHtmlTagPrefix = (tail$1) => {
@@ -11737,6 +11872,7 @@ function parseMarkdownToStructure(markdown, md, options = {}) {
11737
11872
  else result = postResult;
11738
11873
  }
11739
11874
  }
11875
+ result = applyEscapeHtmlTags(result, options);
11740
11876
  if (options.debug) console.log("Parsed Markdown Tree Structure:", result);
11741
11877
  return result;
11742
11878
  }
@@ -11802,7 +11938,8 @@ function processTokens(tokens, options) {
11802
11938
  case "inline":
11803
11939
  result.push(...parseInlineTokens(token.children || [], String(token.content ?? ""), void 0, {
11804
11940
  requireClosingStrong: options?.requireClosingStrong,
11805
- customHtmlTags: options?.customHtmlTags
11941
+ customHtmlTags: options?.customHtmlTags,
11942
+ escapeHtmlTags: options?.escapeHtmlTags
11806
11943
  }));
11807
11944
  i += 1;
11808
11945
  break;
@@ -11811,7 +11948,7 @@ function processTokens(tokens, options) {
11811
11948
  break;
11812
11949
  }
11813
11950
  }
11814
- return result;
11951
+ return applyEscapeHtmlTags(result, options);
11815
11952
  }
11816
11953
 
11817
11954
  //#endregion