# 解析 API

从公开 TypeScript 导出生成的签名与逐项说明。

## 公开合同

### MarkdownStream

`@quirekit/incremark-core` · MIT

无界面源码会话；传输状态不会冻结语法或引用依赖。

```ts
export class MarkdownStream {
    constructor(options?: MarkdownOptions);
    get content(): string;
    append(chunk: string): void;
    reset(content?: string): void;
    get state(): EditorState;
    get pending(): boolean;
    update(content: string): void;
    advance(budget?: number): boolean;
}
```

### parseMarkdown

`@quirekit/incremark-core` · MIT

完成规范语法解析，返回可供 Vue 或原生消费者复用的快照；不挂载视图。content 为精确原文，返回状态使用 CodeMirror 逻辑换行；options 安装语法和语义扩展。

```ts
function parseMarkdown(content: string, options?: MarkdownOptions): EditorState
```

### MarkdownOptions

`@quirekit/incremark-core` · MIT

一次阅读会话中保持稳定的源码配置。

```ts
export interface MarkdownOptions {
    readonly preset?: "extended" | false;
    readonly extensions?: readonly AnyExtension[];
    readonly syntax?: readonly MarkdownExtension[];
}
```

**preset** — 默认扩展预设包含脚注、数学、容器和行内扩展；false 仅保留核心 GFM 与显式扩展。

**extensions** — 持有源码语义的扩展，包含经过验证的自定义 Node/Mark。

**syntax** — 原生 Lezer 语法扩展；字段需要验证时同时提供 source codec。

### MarkdownLocale

`@quirekit/incremark-core` · MIT

阅读控件语言，与文档文字分离。

```ts
export type MarkdownLocale = "zh-CN" | "en";
```

### MarkdownStatus

`@quirekit/incremark-core` · MIT

传输元数据；终止状态不会冻结解析或丢弃已收到的文字。

```ts
export type MarkdownStatus = "receiving" | "complete" | "stopped" | "error";
```

### MarkdownReadingError

`@quirekit/incremark-core` · MIT

保留源码的局部失败，限定在捕获的节点或解析会话。

```ts
export interface MarkdownReadingError {
    readonly owner: string;
    readonly phase: "parse" | "read" | "load" | "render" | "dispose";
    readonly from: number;
    readonly to: number;
    readonly cause: unknown;
}
```

**owner** — 已安装的语义 owner 或源码会话。

**phase** — 失败发生的阶段。

**from** — 捕获的规范化源码范围起点，UTF-16 偏移，包含边界。

**to** — 捕获的规范化源码范围终点，UTF-16 偏移，不含边界。

**cause** — 供宿主诊断的原始错误。
