stream-markdown-parser 0.0.59-beta.0 → 0.0.59-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.
package/README.md CHANGED
@@ -256,8 +256,6 @@ interface ParseOptions {
256
256
  postTransformNodes?: (nodes: ParsedNode[]) => ParsedNode[]
257
257
  // Custom HTML-like tags to emit as custom nodes (e.g. ['thinking'])
258
258
  customHtmlTags?: string[]
259
- // Force specific tags to render as literal text (e.g. ['question', 'answer'])
260
- escapeHtmlTags?: string[]
261
259
  }
262
260
  ```
263
261
 
@@ -277,20 +275,9 @@ const parseOptions = {
277
275
 
278
276
  Use the metadata in your renderer to show custom UI without mangling the original Markdown.
279
277
 
280
- Example escape placeholder tags as literal text:
278
+ ### Unknown HTML-like tags
281
279
 
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)
280
+ By default, non-standard HTML-like tags (for example `<question>`) are rendered as **literal text** unless you opt in via `customHtmlTags`.
294
281
 
295
282
  ### Utility Functions
296
283
 
package/README.zh-CN.md CHANGED
@@ -255,8 +255,6 @@ interface ParseOptions {
255
255
  postTransformNodes?: (nodes: ParsedNode[]) => ParsedNode[]
256
256
  // 自定义 HTML 类标签,作为自定义节点输出(如 ['thinking'])
257
257
  customHtmlTags?: string[]
258
- // 强制指定标签渲染为纯文本(如 ['question', 'answer'])
259
- escapeHtmlTags?: string[]
260
258
  }
261
259
  ```
262
260
 
@@ -276,20 +274,9 @@ const parseOptions = {
276
274
 
277
275
  在渲染器中读取 `node.meta` 即可渲染自定义 UI,而无需直接修改 Markdown 文本。
278
276
 
279
- 示例 —— 将占位符标签转义为纯文本:
277
+ ### 未知 HTML 类标签
280
278
 
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
- - 标签名不区分大小写(会规范化为小写)
279
+ 默认情况下,非标准的 HTML 类标签(例如 `<question>`)会被当作**纯文本**输出;只有在 `customHtmlTags` 中显式声明后,才会作为自定义节点参与解析与渲染。
293
280
 
294
281
  ### 工具函数
295
282
 
package/dist/index.d.ts CHANGED
@@ -334,19 +334,6 @@ 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[];
350
337
  debug?: boolean;
351
338
  }
352
339
  type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
@@ -355,7 +342,6 @@ type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
355
342
  declare function parseInlineTokens(tokens: MarkdownToken[], raw?: string, pPreToken?: MarkdownToken, options?: {
356
343
  requireClosingStrong?: boolean;
357
344
  customHtmlTags?: readonly string[];
358
- escapeHtmlTags?: readonly string[];
359
345
  }): ParsedNode[];
360
346
  //#endregion
361
347
  //#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,8 +9128,7 @@ 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,
9132
- escapeHtmlTags: options?.escapeHtmlTags
9131
+ customHtmlTags: options?.customHtmlTags
9133
9132
  }));
9134
9133
  return {
9135
9134
  node: {
@@ -9240,8 +9239,7 @@ function parseHighlightToken(tokens, startIndex, options) {
9240
9239
  }
9241
9240
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9242
9241
  requireClosingStrong: options?.requireClosingStrong,
9243
- customHtmlTags: options?.customHtmlTags,
9244
- escapeHtmlTags: options?.escapeHtmlTags
9242
+ customHtmlTags: options?.customHtmlTags
9245
9243
  }));
9246
9244
  return {
9247
9245
  node: {
@@ -9287,12 +9285,6 @@ function normalizeCustomTag(t) {
9287
9285
  const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
9288
9286
  return m ? m[1].toLowerCase() : "";
9289
9287
  }
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
- }
9296
9288
  function tokenToRaw(token) {
9297
9289
  const shape = token;
9298
9290
  const raw = shape.raw ?? shape.content ?? shape.markup ?? "";
@@ -9349,20 +9341,20 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
9349
9341
  const tag = getTagName(code$1);
9350
9342
  const customTags = options?.customHtmlTags;
9351
9343
  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;
9354
9344
  if (!tag) return [{
9355
9345
  type: "inline_code",
9356
9346
  code: code$1,
9357
9347
  raw: code$1
9358
9348
  }, 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];
9349
+ if (!buildAllowedHtmlTagSet({ customHtmlTags: options?.customHtmlTags }).has(tag)) {
9350
+ if (!collectHtmlFragment(tokens, i, tag).closed) {
9351
+ const content$1 = tokenToRaw(token);
9352
+ return [{
9353
+ type: "text",
9354
+ content: content$1,
9355
+ raw: content$1
9356
+ }, i + 1];
9357
+ }
9366
9358
  }
9367
9359
  if (tag === "br") return [{
9368
9360
  type: "hardbreak",
@@ -9513,8 +9505,7 @@ function parseInsertToken(tokens, startIndex, options) {
9513
9505
  }
9514
9506
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9515
9507
  requireClosingStrong: options?.requireClosingStrong,
9516
- customHtmlTags: options?.customHtmlTags,
9517
- escapeHtmlTags: options?.escapeHtmlTags
9508
+ customHtmlTags: options?.customHtmlTags
9518
9509
  }));
9519
9510
  return {
9520
9511
  node: {
@@ -9543,8 +9534,7 @@ function parseLinkToken(tokens, startIndex, options) {
9543
9534
  if (tokens[i]?.type === "link_close") loading = false;
9544
9535
  const children = parseInlineTokens(linkTokens, void 0, void 0, {
9545
9536
  requireClosingStrong: options?.requireClosingStrong,
9546
- customHtmlTags: options?.customHtmlTags,
9547
- escapeHtmlTags: options?.escapeHtmlTags
9537
+ customHtmlTags: options?.customHtmlTags
9548
9538
  });
9549
9539
  const linkText = children.map((node) => {
9550
9540
  const nodeAny = node;
@@ -9602,8 +9592,7 @@ function parseStrikethroughToken(tokens, startIndex, options) {
9602
9592
  }
9603
9593
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9604
9594
  requireClosingStrong: options?.requireClosingStrong,
9605
- customHtmlTags: options?.customHtmlTags,
9606
- escapeHtmlTags: options?.escapeHtmlTags
9595
+ customHtmlTags: options?.customHtmlTags
9607
9596
  }));
9608
9597
  return {
9609
9598
  node: {
@@ -9635,8 +9624,7 @@ function parseStrongToken(tokens, startIndex, raw, options) {
9635
9624
  }
9636
9625
  children.push(...parseInlineTokens(innerTokens, raw, void 0, {
9637
9626
  requireClosingStrong: options?.requireClosingStrong,
9638
- customHtmlTags: options?.customHtmlTags,
9639
- escapeHtmlTags: options?.escapeHtmlTags
9627
+ customHtmlTags: options?.customHtmlTags
9640
9628
  }));
9641
9629
  return {
9642
9630
  node: {
@@ -9662,8 +9650,7 @@ function parseSubscriptToken(tokens, startIndex, options) {
9662
9650
  }
9663
9651
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9664
9652
  requireClosingStrong: options?.requireClosingStrong,
9665
- customHtmlTags: options?.customHtmlTags,
9666
- escapeHtmlTags: options?.escapeHtmlTags
9653
+ customHtmlTags: options?.customHtmlTags
9667
9654
  }));
9668
9655
  const startContent = String(tokens[startIndex].content ?? "");
9669
9656
  const display = subText || startContent;
@@ -9695,8 +9682,7 @@ function parseSuperscriptToken(tokens, startIndex, options) {
9695
9682
  }
9696
9683
  children.push(...parseInlineTokens(innerTokens, void 0, void 0, {
9697
9684
  requireClosingStrong: options?.requireClosingStrong,
9698
- customHtmlTags: options?.customHtmlTags,
9699
- escapeHtmlTags: options?.escapeHtmlTags
9685
+ customHtmlTags: options?.customHtmlTags
9700
9686
  }));
9701
9687
  return {
9702
9688
  node: {
@@ -10499,8 +10485,7 @@ function parseList(tokens, index, options) {
10499
10485
  type: "paragraph",
10500
10486
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), preToken, {
10501
10487
  requireClosingStrong: options?.requireClosingStrong,
10502
- customHtmlTags: options?.customHtmlTags,
10503
- escapeHtmlTags: options?.escapeHtmlTags
10488
+ customHtmlTags: options?.customHtmlTags
10504
10489
  }),
10505
10490
  raw: String(contentToken.content ?? "")
10506
10491
  });
@@ -10557,8 +10542,7 @@ function parseAdmonition(tokens, index, match, options) {
10557
10542
  type: "paragraph",
10558
10543
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10559
10544
  requireClosingStrong: options?.requireClosingStrong,
10560
- customHtmlTags: options?.customHtmlTags,
10561
- escapeHtmlTags: options?.escapeHtmlTags
10545
+ customHtmlTags: options?.customHtmlTags
10562
10546
  }),
10563
10547
  raw: String(contentToken.content ?? "")
10564
10548
  });
@@ -10630,8 +10614,7 @@ function parseContainer(tokens, index, options) {
10630
10614
  type: "paragraph",
10631
10615
  children: parseInlineTokens(_children || [], void 0, void 0, {
10632
10616
  requireClosingStrong: options?.requireClosingStrong,
10633
- customHtmlTags: options?.customHtmlTags,
10634
- escapeHtmlTags: options?.escapeHtmlTags
10617
+ customHtmlTags: options?.customHtmlTags
10635
10618
  }),
10636
10619
  raw: String(contentToken.content ?? "").replace(/\n:+$/, "").replace(/\n\s*:::\s*$/, "")
10637
10620
  });
@@ -10688,8 +10671,7 @@ function parseBlockquote(tokens, index, options) {
10688
10671
  type: "paragraph",
10689
10672
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10690
10673
  requireClosingStrong: options?.requireClosingStrong,
10691
- customHtmlTags: options?.customHtmlTags,
10692
- escapeHtmlTags: options?.escapeHtmlTags
10674
+ customHtmlTags: options?.customHtmlTags
10693
10675
  }),
10694
10676
  raw: String(contentToken.content ?? "")
10695
10677
  });
@@ -10753,8 +10735,7 @@ function parseDefinitionList(tokens, index, options) {
10753
10735
  const termToken = tokens[j + 1];
10754
10736
  termNodes = parseInlineTokens(termToken.children || [], void 0, void 0, {
10755
10737
  requireClosingStrong: options?.requireClosingStrong,
10756
- customHtmlTags: options?.customHtmlTags,
10757
- escapeHtmlTags: options?.escapeHtmlTags
10738
+ customHtmlTags: options?.customHtmlTags
10758
10739
  });
10759
10740
  j += 3;
10760
10741
  } else if (tokens[j].type === "dd_open") {
@@ -10766,8 +10747,7 @@ function parseDefinitionList(tokens, index, options) {
10766
10747
  type: "paragraph",
10767
10748
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10768
10749
  requireClosingStrong: options?.requireClosingStrong,
10769
- customHtmlTags: options?.customHtmlTags,
10770
- escapeHtmlTags: options?.escapeHtmlTags
10750
+ customHtmlTags: options?.customHtmlTags
10771
10751
  }),
10772
10752
  raw: String(contentToken.content ?? "")
10773
10753
  });
@@ -10806,8 +10786,7 @@ function parseFootnote(tokens, index, options) {
10806
10786
  type: "paragraph",
10807
10787
  children: parseInlineTokens(contentToken.children || [], String(contentToken.content ?? ""), void 0, {
10808
10788
  requireClosingStrong: options?.requireClosingStrong,
10809
- customHtmlTags: options?.customHtmlTags,
10810
- escapeHtmlTags: options?.escapeHtmlTags
10789
+ customHtmlTags: options?.customHtmlTags
10811
10790
  }),
10812
10791
  raw: String(contentToken.content ?? "")
10813
10792
  });
@@ -10838,8 +10817,7 @@ function parseHeading(tokens, index, options) {
10838
10817
  ...attrsRecord ? { attrs: attrsRecord } : {},
10839
10818
  children: parseInlineTokens(headingContentToken.children || [], headingContent, void 0, {
10840
10819
  requireClosingStrong: options?.requireClosingStrong,
10841
- customHtmlTags: options?.customHtmlTags,
10842
- escapeHtmlTags: options?.escapeHtmlTags
10820
+ customHtmlTags: options?.customHtmlTags
10843
10821
  }),
10844
10822
  raw: headingContent
10845
10823
  };
@@ -10953,8 +10931,7 @@ function parseTable(tokens, index, options) {
10953
10931
  header: isHeaderCell || isHeader,
10954
10932
  children: parseInlineTokens(contentToken.children || [], content, void 0, {
10955
10933
  requireClosingStrong: options?.requireClosingStrong,
10956
- customHtmlTags: options?.customHtmlTags,
10957
- escapeHtmlTags: options?.escapeHtmlTags
10934
+ customHtmlTags: options?.customHtmlTags
10958
10935
  }),
10959
10936
  raw: content,
10960
10937
  align
@@ -11022,8 +10999,7 @@ function parseVmrContainer(tokens, index, options) {
11022
10999
  type: "paragraph",
11023
11000
  children: parseInlineTokens(childrenArr || [], void 0, void 0, {
11024
11001
  requireClosingStrong: options?.requireClosingStrong,
11025
- customHtmlTags: options?.customHtmlTags,
11026
- escapeHtmlTags: options?.escapeHtmlTags
11002
+ customHtmlTags: options?.customHtmlTags
11027
11003
  }),
11028
11004
  raw: String(contentToken.content ?? "")
11029
11005
  });
@@ -11177,26 +11153,17 @@ function parseBasicBlockToken(tokens, index, options) {
11177
11153
  case "math_block": return [parseMathBlock(token), index + 1];
11178
11154
  case "html_block": {
11179
11155
  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
- }],
11156
+ if (htmlBlockNode.tag && !buildAllowedHtmlTagSet(options).has(htmlBlockNode.tag) && htmlBlockNode.loading) {
11157
+ const content = String(token?.content ?? "").replace(/\n+$/, "");
11158
+ return [{
11159
+ type: "paragraph",
11160
+ children: content ? [{
11161
+ type: "text",
11162
+ content,
11197
11163
  raw: content
11198
- }, index + 1];
11199
- }
11164
+ }] : [],
11165
+ raw: content
11166
+ }, index + 1];
11200
11167
  }
11201
11168
  if (options?.customHtmlTags && htmlBlockNode.tag) {
11202
11169
  if (new Set(options.customHtmlTags.map((t) => {
@@ -11299,8 +11266,7 @@ function parseParagraph(tokens, index, options) {
11299
11266
  type: "paragraph",
11300
11267
  children: parseInlineTokens(paragraphContentToken.children || [], paragraphContent, void 0, {
11301
11268
  requireClosingStrong: options?.requireClosingStrong,
11302
- customHtmlTags: options?.customHtmlTags,
11303
- escapeHtmlTags: options?.escapeHtmlTags
11269
+ customHtmlTags: options?.customHtmlTags
11304
11270
  }),
11305
11271
  raw: paragraphContent
11306
11272
  };
@@ -11308,84 +11274,98 @@ function parseParagraph(tokens, index, options) {
11308
11274
 
11309
11275
  //#endregion
11310
11276
  //#region src/parser/index.ts
11277
+ const STANDARD_HTML_TAGS = new Set([
11278
+ "area",
11279
+ "base",
11280
+ "br",
11281
+ "col",
11282
+ "embed",
11283
+ "hr",
11284
+ "img",
11285
+ "input",
11286
+ "link",
11287
+ "meta",
11288
+ "param",
11289
+ "source",
11290
+ "track",
11291
+ "wbr",
11292
+ "a",
11293
+ "abbr",
11294
+ "b",
11295
+ "bdi",
11296
+ "bdo",
11297
+ "button",
11298
+ "cite",
11299
+ "code",
11300
+ "data",
11301
+ "del",
11302
+ "dfn",
11303
+ "em",
11304
+ "font",
11305
+ "i",
11306
+ "ins",
11307
+ "kbd",
11308
+ "label",
11309
+ "mark",
11310
+ "q",
11311
+ "s",
11312
+ "samp",
11313
+ "small",
11314
+ "span",
11315
+ "strong",
11316
+ "sub",
11317
+ "sup",
11318
+ "time",
11319
+ "u",
11320
+ "var",
11321
+ "article",
11322
+ "aside",
11323
+ "blockquote",
11324
+ "div",
11325
+ "details",
11326
+ "figcaption",
11327
+ "figure",
11328
+ "footer",
11329
+ "header",
11330
+ "h1",
11331
+ "h2",
11332
+ "h3",
11333
+ "h4",
11334
+ "h5",
11335
+ "h6",
11336
+ "li",
11337
+ "main",
11338
+ "nav",
11339
+ "ol",
11340
+ "p",
11341
+ "pre",
11342
+ "section",
11343
+ "summary",
11344
+ "table",
11345
+ "tbody",
11346
+ "td",
11347
+ "th",
11348
+ "thead",
11349
+ "tr",
11350
+ "ul",
11351
+ "svg",
11352
+ "g",
11353
+ "path"
11354
+ ]);
11311
11355
  function normalizeTagName(t) {
11312
11356
  const raw = String(t ?? "").trim();
11313
11357
  if (!raw) return "";
11314
11358
  const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
11315
11359
  return m ? m[1].toLowerCase() : "";
11316
11360
  }
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"));
11361
+ function buildAllowedHtmlTagSet(options) {
11362
+ const set = new Set(STANDARD_HTML_TAGS);
11363
+ const custom = options?.customHtmlTags;
11364
+ if (Array.isArray(custom)) for (const t of custom) {
11365
+ const name = normalizeTagName(t);
11366
+ if (name) set.add(name);
11367
+ }
11368
+ return set;
11389
11369
  }
11390
11370
  function stripDanglingHtmlLikeTail(markdown) {
11391
11371
  const isWs = (ch) => ch === " " || ch === " " || ch === "\n" || ch === "\r";
@@ -11872,7 +11852,6 @@ function parseMarkdownToStructure(markdown, md, options = {}) {
11872
11852
  else result = postResult;
11873
11853
  }
11874
11854
  }
11875
- result = applyEscapeHtmlTags(result, options);
11876
11855
  if (options.debug) console.log("Parsed Markdown Tree Structure:", result);
11877
11856
  return result;
11878
11857
  }
@@ -11938,8 +11917,7 @@ function processTokens(tokens, options) {
11938
11917
  case "inline":
11939
11918
  result.push(...parseInlineTokens(token.children || [], String(token.content ?? ""), void 0, {
11940
11919
  requireClosingStrong: options?.requireClosingStrong,
11941
- customHtmlTags: options?.customHtmlTags,
11942
- escapeHtmlTags: options?.escapeHtmlTags
11920
+ customHtmlTags: options?.customHtmlTags
11943
11921
  }));
11944
11922
  i += 1;
11945
11923
  break;
@@ -11948,7 +11926,7 @@ function processTokens(tokens, options) {
11948
11926
  break;
11949
11927
  }
11950
11928
  }
11951
- return applyEscapeHtmlTags(result, options);
11929
+ return result;
11952
11930
  }
11953
11931
 
11954
11932
  //#endregion