stream-markdown-parser 0.0.14 → 0.0.16
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 +12 -9
- package/README.zh-CN.md +11 -9
- package/dist/index.d.ts +25 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -14
- package/dist/index.js.map +1 -1
- package/package.json +4 -5
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ This package contains the core markdown parsing logic extracted from `stream-mar
|
|
|
19
19
|
- ⚡ **Fast** - Optimized for performance
|
|
20
20
|
- 🌊 **Streaming-friendly** - Progressive parsing support
|
|
21
21
|
|
|
22
|
+
> ℹ️ We now build on top of [`markdown-it-ts`](https://www.npmjs.com/package/markdown-it-ts), a TypeScript-first distribution of markdown-it. The API stays the same, but we only rely on its parsing pipeline and ship richer typings for tokens and hooks.
|
|
23
|
+
|
|
22
24
|
## Installation
|
|
23
25
|
|
|
24
26
|
```bash
|
|
@@ -36,16 +38,17 @@ yarn add stream-markdown-parser
|
|
|
36
38
|
```typescript
|
|
37
39
|
import { getMarkdown, parseMarkdownToStructure } from 'stream-markdown-parser'
|
|
38
40
|
|
|
39
|
-
// Create a markdown-it instance with default plugins
|
|
41
|
+
// Create a markdown-it-ts instance with default plugins
|
|
40
42
|
const md = getMarkdown()
|
|
41
43
|
|
|
42
|
-
// Parse markdown to
|
|
43
|
-
const html = md.render('# Hello World\n\nThis is **bold**.')
|
|
44
|
-
|
|
45
|
-
// Or parse to AST structure
|
|
44
|
+
// Parse markdown to our streaming-friendly AST structure
|
|
46
45
|
const nodes = parseMarkdownToStructure('# Hello World', md)
|
|
47
46
|
console.log(nodes)
|
|
48
47
|
// [{ type: 'heading', level: 1, children: [...] }]
|
|
48
|
+
|
|
49
|
+
// markdown-it-ts still exposes render() if you need HTML output,
|
|
50
|
+
// but this package now focuses on the token -> AST pipeline.
|
|
51
|
+
const html = md.render?.('# Hello World\n\nThis is **bold**.')
|
|
49
52
|
```
|
|
50
53
|
|
|
51
54
|
### With Math Options
|
|
@@ -117,7 +120,7 @@ const md = getMarkdown('editor-1', {
|
|
|
117
120
|
|
|
118
121
|
#### `getMarkdown(msgId?, options?)`
|
|
119
122
|
|
|
120
|
-
Creates a configured markdown-it instance.
|
|
123
|
+
Creates a configured `markdown-it-ts` instance (API-compatible with markdown-it).
|
|
121
124
|
|
|
122
125
|
**Parameters:**
|
|
123
126
|
- `msgId` (string, optional): Unique identifier for this instance. Default: `editor-${Date.now()}`
|
|
@@ -126,7 +129,7 @@ Creates a configured markdown-it instance.
|
|
|
126
129
|
**Options:**
|
|
127
130
|
```typescript
|
|
128
131
|
interface GetMarkdownOptions {
|
|
129
|
-
// Array of markdown-it plugins to use
|
|
132
|
+
// Array of markdown-it/markdown-it-ts plugins to use
|
|
130
133
|
plugin?: Array<Plugin | [Plugin, any]>
|
|
131
134
|
|
|
132
135
|
// Array of functions to mutate the md instance
|
|
@@ -143,7 +146,7 @@ Parses markdown content into a structured node tree.
|
|
|
143
146
|
|
|
144
147
|
**Parameters:**
|
|
145
148
|
- `content` (string): The markdown content to parse
|
|
146
|
-
- `md` (
|
|
149
|
+
- `md` (MarkdownItCore, optional): A markdown-it-ts instance. If not provided, creates one using `getMarkdown()`
|
|
147
150
|
- `options` (ParseOptions, optional): Parsing options with hooks
|
|
148
151
|
|
|
149
152
|
**Returns:** `ParsedNode[]` - An array of parsed nodes
|
|
@@ -154,7 +157,7 @@ Processes raw markdown-it tokens into a flat array.
|
|
|
154
157
|
|
|
155
158
|
#### `parseInlineTokens(tokens, md)`
|
|
156
159
|
|
|
157
|
-
Parses inline markdown-it tokens.
|
|
160
|
+
Parses inline markdown-it-ts tokens.
|
|
158
161
|
|
|
159
162
|
### Configuration Functions
|
|
160
163
|
|
package/README.zh-CN.md
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
- ⚡ **高性能** - 性能优化
|
|
20
20
|
- 🌊 **流式友好** - 支持渐进式解析
|
|
21
21
|
|
|
22
|
+
> ℹ️ 自当前版本起我们基于 [`markdown-it-ts`](https://www.npmjs.com/package/markdown-it-ts)(一个 TypeScript 优先的 markdown-it 发行版)进行构建。API 与 markdown-it 保持一致,但内部仅依赖其解析流程,并提供更丰富的 token 类型定义。
|
|
23
|
+
|
|
22
24
|
## 安装
|
|
23
25
|
|
|
24
26
|
```bash
|
|
@@ -36,16 +38,16 @@ yarn add stream-markdown-parser
|
|
|
36
38
|
```typescript
|
|
37
39
|
import { getMarkdown, parseMarkdownToStructure } from 'stream-markdown-parser'
|
|
38
40
|
|
|
39
|
-
// 创建一个带有默认插件的 markdown-it 实例
|
|
41
|
+
// 创建一个带有默认插件的 markdown-it-ts 实例
|
|
40
42
|
const md = getMarkdown()
|
|
41
43
|
|
|
42
|
-
// 将 Markdown
|
|
43
|
-
const html = md.render('# Hello World\n\nThis is **bold**.')
|
|
44
|
-
|
|
45
|
-
// 或解析为 AST 结构
|
|
44
|
+
// 将 Markdown 解析为流式友好的 AST 结构
|
|
46
45
|
const nodes = parseMarkdownToStructure('# Hello World', md)
|
|
47
46
|
console.log(nodes)
|
|
48
47
|
// [{ type: 'heading', level: 1, children: [...] }]
|
|
48
|
+
|
|
49
|
+
// 如果仍需 HTML 输出,markdown-it-ts 依旧提供 render()
|
|
50
|
+
const html = md.render?.('# Hello World\n\nThis is **bold**.')
|
|
49
51
|
```
|
|
50
52
|
|
|
51
53
|
### 配置数学公式选项
|
|
@@ -117,7 +119,7 @@ const md = getMarkdown('editor-1', {
|
|
|
117
119
|
|
|
118
120
|
#### `getMarkdown(msgId?, options?)`
|
|
119
121
|
|
|
120
|
-
创建一个配置好的 markdown-it
|
|
122
|
+
创建一个配置好的 `markdown-it-ts` 实例(与 markdown-it API 兼容)。
|
|
121
123
|
|
|
122
124
|
**参数:**
|
|
123
125
|
- `msgId` (string, 可选): 该实例的唯一标识符。默认值:`editor-${Date.now()}`
|
|
@@ -126,7 +128,7 @@ const md = getMarkdown('editor-1', {
|
|
|
126
128
|
**选项:**
|
|
127
129
|
```typescript
|
|
128
130
|
interface GetMarkdownOptions {
|
|
129
|
-
// 要使用的 markdown-it 插件数组
|
|
131
|
+
// 要使用的 markdown-it / markdown-it-ts 插件数组
|
|
130
132
|
plugin?: Array<Plugin | [Plugin, any]>
|
|
131
133
|
|
|
132
134
|
// 修改 md 实例的函数数组
|
|
@@ -143,7 +145,7 @@ interface GetMarkdownOptions {
|
|
|
143
145
|
|
|
144
146
|
**参数:**
|
|
145
147
|
- `content` (string): 要解析的 Markdown 内容
|
|
146
|
-
- `md` (
|
|
148
|
+
- `md` (MarkdownItCore, 可选): markdown-it-ts 实例。如果未提供,则使用 `getMarkdown()` 创建
|
|
147
149
|
- `options` (ParseOptions, 可选): 带有钩子的解析选项
|
|
148
150
|
|
|
149
151
|
**返回值:** `ParsedNode[]` - 解析后的节点数组
|
|
@@ -154,7 +156,7 @@ interface GetMarkdownOptions {
|
|
|
154
156
|
|
|
155
157
|
#### `parseInlineTokens(tokens, md)`
|
|
156
158
|
|
|
157
|
-
解析内联 markdown-it tokens。
|
|
159
|
+
解析内联 markdown-it-ts tokens。
|
|
158
160
|
|
|
159
161
|
### 配置函数
|
|
160
162
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import MarkdownIt from "markdown-it";
|
|
1
|
+
import { MarkdownIt as MarkdownIt$1, Token } from "markdown-it-ts";
|
|
2
2
|
|
|
3
3
|
//#region src/factory.d.ts
|
|
4
4
|
interface FactoryOptions extends Record<string, unknown> {
|
|
@@ -57,6 +57,10 @@ interface CodeBlockNode extends BaseNode {
|
|
|
57
57
|
updatedCode?: string;
|
|
58
58
|
raw: string;
|
|
59
59
|
}
|
|
60
|
+
interface HtmlBlockNode extends BaseNode {
|
|
61
|
+
type: 'html_block';
|
|
62
|
+
content: string;
|
|
63
|
+
}
|
|
60
64
|
interface InlineCodeNode extends BaseNode {
|
|
61
65
|
type: 'inline_code';
|
|
62
66
|
code: string;
|
|
@@ -190,20 +194,28 @@ interface ReferenceNode extends BaseNode {
|
|
|
190
194
|
type: 'reference';
|
|
191
195
|
id: string;
|
|
192
196
|
}
|
|
193
|
-
interface
|
|
197
|
+
interface MarkdownTokenLite {
|
|
194
198
|
type: string;
|
|
195
199
|
tag?: string;
|
|
196
200
|
content?: string;
|
|
197
201
|
info?: string;
|
|
198
|
-
loading?: boolean;
|
|
199
|
-
children?: MarkdownToken[];
|
|
200
|
-
attrs?: [string, string][];
|
|
201
202
|
markup?: string;
|
|
202
203
|
meta?: unknown;
|
|
203
|
-
map?: [number, number];
|
|
204
|
+
map?: [number, number] | number[] | null;
|
|
205
|
+
block?: boolean;
|
|
206
|
+
hidden?: boolean;
|
|
207
|
+
attrs?: [string, string][] | null;
|
|
208
|
+
nesting?: number;
|
|
209
|
+
level?: number;
|
|
210
|
+
children?: MarkdownToken[] | null;
|
|
211
|
+
loading?: boolean;
|
|
204
212
|
raw?: string;
|
|
205
213
|
}
|
|
206
|
-
type
|
|
214
|
+
type MarkdownToken = (Token & {
|
|
215
|
+
loading?: boolean;
|
|
216
|
+
raw?: string;
|
|
217
|
+
}) | MarkdownTokenLite;
|
|
218
|
+
type ParsedNode = TextNode | HeadingNode | ParagraphNode | ListNode | ListItemNode | CodeBlockNode | InlineCodeNode | LinkNode | ImageNode | ThematicBreakNode | BlockquoteNode | TableNode | TableRowNode | TableCellNode | StrongNode | EmphasisNode | StrikethroughNode | HighlightNode | InsertNode | SubscriptNode | SuperscriptNode | CheckboxNode | CheckboxInputNode | EmojiNode | DefinitionListNode | DefinitionItemNode | FootnoteNode | FootnoteReferenceNode | AdmonitionNode | HardBreakNode | MathInlineNode | MathBlockNode | ReferenceNode | HtmlBlockNode | Record<string, unknown>;
|
|
207
219
|
interface CustomComponents {
|
|
208
220
|
text: unknown;
|
|
209
221
|
paragraph: unknown;
|
|
@@ -247,7 +259,7 @@ type PostTransformNodesHook = (nodes: ParsedNode[]) => ParsedNode[];
|
|
|
247
259
|
declare function parseInlineTokens(tokens: MarkdownToken[], raw?: string, pPreToken?: MarkdownToken): ParsedNode[];
|
|
248
260
|
//#endregion
|
|
249
261
|
//#region src/parser/index.d.ts
|
|
250
|
-
declare function parseMarkdownToStructure(markdown: string, md: MarkdownIt, options?: ParseOptions): ParsedNode[];
|
|
262
|
+
declare function parseMarkdownToStructure(markdown: string, md: MarkdownIt$1, options?: ParseOptions): ParsedNode[];
|
|
251
263
|
declare function processTokens(tokens: MarkdownToken[]): ParsedNode[];
|
|
252
264
|
//#endregion
|
|
253
265
|
//#region src/config.d.ts
|
|
@@ -275,7 +287,7 @@ declare function findMatchingClose(src: string, startIdx: number, open: string,
|
|
|
275
287
|
declare function parseFenceToken(token: MarkdownToken): CodeBlockNode;
|
|
276
288
|
//#endregion
|
|
277
289
|
//#region src/plugins/containers.d.ts
|
|
278
|
-
declare function applyContainers(md: MarkdownIt): void;
|
|
290
|
+
declare function applyContainers(md: MarkdownIt$1): void;
|
|
279
291
|
//#endregion
|
|
280
292
|
//#region src/plugins/isMathLike.d.ts
|
|
281
293
|
declare const TEX_BRACE_COMMANDS: string[];
|
|
@@ -285,21 +297,19 @@ declare function isMathLike(s: string): boolean;
|
|
|
285
297
|
//#region src/plugins/math.d.ts
|
|
286
298
|
declare const KATEX_COMMANDS: string[];
|
|
287
299
|
declare function normalizeStandaloneBackslashT(s: string, opts?: MathOptions): string;
|
|
288
|
-
declare function applyMath(md: MarkdownIt, mathOpts?: MathOptions): void;
|
|
300
|
+
declare function applyMath(md: MarkdownIt$1, mathOpts?: MathOptions): void;
|
|
289
301
|
//#endregion
|
|
290
302
|
//#region src/index.d.ts
|
|
291
303
|
interface GetMarkdownOptions extends FactoryOptions {
|
|
292
304
|
plugin?: Array<unknown>;
|
|
293
|
-
apply?: Array<(md: MarkdownIt) => void>;
|
|
305
|
+
apply?: Array<(md: MarkdownIt$1) => void>;
|
|
294
306
|
/**
|
|
295
307
|
* Custom translation function or translation map for UI texts
|
|
296
308
|
* @default { 'common.copy': 'Copy' }
|
|
297
309
|
*/
|
|
298
310
|
i18n?: ((key: string) => string) | Record<string, string>;
|
|
299
311
|
}
|
|
300
|
-
declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
|
|
301
|
-
declare function getCommonMarkdown(): MarkdownIt;
|
|
302
|
-
declare function renderMarkdown(md: MarkdownIt, content: string): string;
|
|
312
|
+
declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt$1;
|
|
303
313
|
//#endregion
|
|
304
|
-
export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, ImageNode, InlineCodeNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose,
|
|
314
|
+
export { AdmonitionNode, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponents, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EmojiNode, EmphasisNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, ImageNode, InlineCodeNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
|
|
305
315
|
//# sourceMappingURL=index.d.ts.map
|
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":";;;UAYiB,cAAA,SAAuB;sBAClB
|
|
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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import MarkdownIt from "markdown-it";
|
|
2
1
|
import { full } from "markdown-it-emoji";
|
|
3
2
|
import markdownItFootnote from "markdown-it-footnote";
|
|
4
3
|
import markdownItIns from "markdown-it-ins";
|
|
@@ -6,6 +5,7 @@ import markdownItMark from "markdown-it-mark";
|
|
|
6
5
|
import markdownItSub from "markdown-it-sub";
|
|
7
6
|
import markdownItSup from "markdown-it-sup";
|
|
8
7
|
import * as markdownItCheckbox from "markdown-it-task-checkbox";
|
|
8
|
+
import MarkdownIt from "markdown-it-ts";
|
|
9
9
|
import markdownItContainer from "markdown-it-container";
|
|
10
10
|
|
|
11
11
|
//#region src/config.ts
|
|
@@ -972,6 +972,7 @@ function factory(opts = {}) {
|
|
|
972
972
|
html: true,
|
|
973
973
|
linkify: true,
|
|
974
974
|
typographer: true,
|
|
975
|
+
stream: true,
|
|
975
976
|
...opts.markdownItOptions ?? {}
|
|
976
977
|
});
|
|
977
978
|
if (opts.enableMath ?? true) applyMath(md, {
|
|
@@ -2521,6 +2522,17 @@ function parseHardBreak() {
|
|
|
2521
2522
|
};
|
|
2522
2523
|
}
|
|
2523
2524
|
|
|
2525
|
+
//#endregion
|
|
2526
|
+
//#region src/parser/node-parsers/html-block-parser.ts
|
|
2527
|
+
function parseHtmlBlock(token) {
|
|
2528
|
+
return {
|
|
2529
|
+
type: "html_block",
|
|
2530
|
+
content: String(token.content ?? ""),
|
|
2531
|
+
raw: String(token.content ?? ""),
|
|
2532
|
+
loading: false
|
|
2533
|
+
};
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2524
2536
|
//#endregion
|
|
2525
2537
|
//#region src/parser/node-parsers/paragraph-parser.ts
|
|
2526
2538
|
function parseParagraph(tokens, index) {
|
|
@@ -2545,7 +2557,7 @@ function parseMarkdownToStructure(markdown, md, options = {}) {
|
|
|
2545
2557
|
const pre = options.preTransformTokens;
|
|
2546
2558
|
const post = options.postTransformTokens;
|
|
2547
2559
|
let transformedTokens = tokens;
|
|
2548
|
-
if (pre && typeof pre === "function") transformedTokens = pre(
|
|
2560
|
+
if (pre && typeof pre === "function") transformedTokens = pre(transformedTokens) || transformedTokens;
|
|
2549
2561
|
let result = processTokens(transformedTokens);
|
|
2550
2562
|
if (post && typeof post === "function") {
|
|
2551
2563
|
const postResult = post(transformedTokens);
|
|
@@ -2586,6 +2598,7 @@ function processTokens(tokens) {
|
|
|
2586
2598
|
i += 3;
|
|
2587
2599
|
break;
|
|
2588
2600
|
case "html_block":
|
|
2601
|
+
result.push(parseHtmlBlock(token));
|
|
2589
2602
|
i += 1;
|
|
2590
2603
|
break;
|
|
2591
2604
|
case "code_block":
|
|
@@ -2765,18 +2778,7 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
|
|
|
2765
2778
|
};
|
|
2766
2779
|
return md;
|
|
2767
2780
|
}
|
|
2768
|
-
function getCommonMarkdown() {
|
|
2769
|
-
return new MarkdownIt({
|
|
2770
|
-
html: true,
|
|
2771
|
-
linkify: true,
|
|
2772
|
-
typographer: true,
|
|
2773
|
-
breaks: false
|
|
2774
|
-
});
|
|
2775
|
-
}
|
|
2776
|
-
function renderMarkdown(md, content) {
|
|
2777
|
-
return md.render(content);
|
|
2778
|
-
}
|
|
2779
2781
|
|
|
2780
2782
|
//#endregion
|
|
2781
|
-
export { ESCAPED_TEX_BRACE_COMMANDS, KATEX_COMMANDS, TEX_BRACE_COMMANDS, applyContainers, applyMath, findMatchingClose,
|
|
2783
|
+
export { ESCAPED_TEX_BRACE_COMMANDS, KATEX_COMMANDS, TEX_BRACE_COMMANDS, applyContainers, applyMath, findMatchingClose, getMarkdown, isMathLike, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, setDefaultMathOptions };
|
|
2782
2784
|
//# sourceMappingURL=index.js.map
|