stream-markdown-parser 0.0.58-beta.9 → 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 +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +363 -21
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
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
|
@@ -44,6 +44,7 @@ interface HeadingNode extends BaseNode {
|
|
|
44
44
|
type: 'heading';
|
|
45
45
|
level: number;
|
|
46
46
|
text: string;
|
|
47
|
+
attrs?: Record<string, string | boolean>;
|
|
47
48
|
children: ParsedNode[];
|
|
48
49
|
}
|
|
49
50
|
interface ParagraphNode extends BaseNode {
|
|
@@ -333,6 +334,19 @@ interface ParseOptions {
|
|
|
333
334
|
* to enable mid-state suppression for the same tags during streaming.
|
|
334
335
|
*/
|
|
335
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[];
|
|
336
350
|
debug?: boolean;
|
|
337
351
|
}
|
|
338
352
|
type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
|
|
@@ -341,6 +355,7 @@ type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
|
|
|
341
355
|
declare function parseInlineTokens(tokens: MarkdownToken[], raw?: string, pPreToken?: MarkdownToken, options?: {
|
|
342
356
|
requireClosingStrong?: boolean;
|
|
343
357
|
customHtmlTags?: readonly string[];
|
|
358
|
+
escapeHtmlTags?: readonly string[];
|
|
344
359
|
}): ParsedNode[];
|
|
345
360
|
//#endregion
|
|
346
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":";;;UAaiB,cAAA,SAAuB;sBAClB;;EADL,gBAAA,CAAe,EAAA,OAAA;;;;ECXf,CAAA;EAaL;AAEZ;AAMA
|
|
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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"}
|