stream-markdown-parser 0.0.58 → 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 +6 -0
- package/README.zh-CN.md +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -254,6 +254,8 @@ 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[]
|
|
257
259
|
}
|
|
258
260
|
```
|
|
259
261
|
|
|
@@ -273,6 +275,10 @@ const parseOptions = {
|
|
|
273
275
|
|
|
274
276
|
Use the metadata in your renderer to show custom UI without mangling the original Markdown.
|
|
275
277
|
|
|
278
|
+
### Unknown HTML-like tags
|
|
279
|
+
|
|
280
|
+
By default, non-standard HTML-like tags (for example `<question>`) are rendered as **literal text** unless you opt in via `customHtmlTags`.
|
|
281
|
+
|
|
276
282
|
### Utility Functions
|
|
277
283
|
|
|
278
284
|
#### `isMathLike(content)`
|
package/README.zh-CN.md
CHANGED
|
@@ -253,10 +253,12 @@ 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[]
|
|
256
258
|
}
|
|
257
259
|
```
|
|
258
260
|
|
|
259
|
-
示例 —— 标记 AI
|
|
261
|
+
示例 —— 标记 AI "思考" 块:
|
|
260
262
|
|
|
261
263
|
```ts
|
|
262
264
|
const parseOptions = {
|
|
@@ -272,6 +274,10 @@ const parseOptions = {
|
|
|
272
274
|
|
|
273
275
|
在渲染器中读取 `node.meta` 即可渲染自定义 UI,而无需直接修改 Markdown 文本。
|
|
274
276
|
|
|
277
|
+
### 未知 HTML 类标签
|
|
278
|
+
|
|
279
|
+
默认情况下,非标准的 HTML 类标签(例如 `<question>`)会被当作**纯文本**输出;只有在 `customHtmlTags` 中显式声明后,才会作为自定义节点参与解析与渲染。
|
|
280
|
+
|
|
275
281
|
### 工具函数
|
|
276
282
|
|
|
277
283
|
#### `isMathLike(content)`
|
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
|
@@ -9346,6 +9346,16 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
|
|
|
9346
9346
|
code: code$1,
|
|
9347
9347
|
raw: code$1
|
|
9348
9348
|
}, 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
|
+
}
|
|
9358
|
+
}
|
|
9349
9359
|
if (tag === "br") return [{
|
|
9350
9360
|
type: "hardbreak",
|
|
9351
9361
|
raw: code$1
|
|
@@ -11143,6 +11153,18 @@ function parseBasicBlockToken(tokens, index, options) {
|
|
|
11143
11153
|
case "math_block": return [parseMathBlock(token), index + 1];
|
|
11144
11154
|
case "html_block": {
|
|
11145
11155
|
const htmlBlockNode = parseHtmlBlock(token);
|
|
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,
|
|
11163
|
+
raw: content
|
|
11164
|
+
}] : [],
|
|
11165
|
+
raw: content
|
|
11166
|
+
}, index + 1];
|
|
11167
|
+
}
|
|
11146
11168
|
if (options?.customHtmlTags && htmlBlockNode.tag) {
|
|
11147
11169
|
if (new Set(options.customHtmlTags.map((t) => {
|
|
11148
11170
|
const m = String(t ?? "").trim().match(/^[<\s/]*([A-Z][\w-]*)/i);
|
|
@@ -11252,6 +11274,99 @@ function parseParagraph(tokens, index, options) {
|
|
|
11252
11274
|
|
|
11253
11275
|
//#endregion
|
|
11254
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
|
+
]);
|
|
11355
|
+
function normalizeTagName(t) {
|
|
11356
|
+
const raw = String(t ?? "").trim();
|
|
11357
|
+
if (!raw) return "";
|
|
11358
|
+
const m = raw.match(/^[<\s/]*([A-Z][\w-]*)/i);
|
|
11359
|
+
return m ? m[1].toLowerCase() : "";
|
|
11360
|
+
}
|
|
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;
|
|
11369
|
+
}
|
|
11255
11370
|
function stripDanglingHtmlLikeTail(markdown) {
|
|
11256
11371
|
const isWs = (ch) => ch === " " || ch === " " || ch === "\n" || ch === "\r";
|
|
11257
11372
|
const isLikelyHtmlTagPrefix = (tail$1) => {
|