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 +2 -15
- package/README.zh-CN.md +2 -15
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +126 -148
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
278
|
+
### Unknown HTML-like tags
|
|
281
279
|
|
|
282
|
-
|
|
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
|
-
|
|
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
|
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,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 (
|
|
9360
|
-
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
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
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11184
|
-
|
|
11185
|
-
|
|
11186
|
-
|
|
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
|
-
}
|
|
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
|
|
11318
|
-
const
|
|
11319
|
-
|
|
11320
|
-
|
|
11321
|
-
|
|
11322
|
-
|
|
11323
|
-
|
|
11324
|
-
|
|
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
|
|
11929
|
+
return result;
|
|
11952
11930
|
}
|
|
11953
11931
|
|
|
11954
11932
|
//#endregion
|