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 +19 -0
- package/README.zh-CN.md +20 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +158 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|