---
title: "Markdown 类型 API"
description: "Tiptap 中 Markdown 扩展相关所有类型的详细文档。"
canonical_url: "https://tiptap.zhcndoc.com/editor/markdown/api/types"
---

# Markdown 类型 API

Tiptap 中 Markdown 扩展相关所有类型的详细文档。

## 类型

### `MarkdownExtensionOptions`

Markdown 扩展的配置选项。

```typescript
type MarkdownExtensionOptions = {
  indentation?: {
    style?: 'space' | 'tab'
    size?: number
  }
  marked?: typeof marked
  markedOptions?: MarkedOptions
}
```

---

### `MarkdownExtensionSpec`

扩展中 Markdown 支持的配置。

```typescript
type MarkdownExtensionSpec = {
  parseName?: string
  renderName?: string
  markdownName?: string // 旧版本遗留
  parseMarkdown?: (token: MarkdownToken, helpers: MarkdownParseHelpers) => MarkdownParseResult
  renderMarkdown?: (node: JSONContent, helpers: MarkdownRendererHelpers, context: RenderContext) => string
  isIndenting?: boolean
  tokenizer?: MarkdownTokenizer
}
```

---

### `MarkdownToken`

MarkedJS 中的 Token 结构。

```typescript
type MarkdownToken = {
  type: string
  raw?: string
  text?: string
  tokens?: MarkdownToken[]
  [key: string]: any
}
```

---

### `MarkdownParseHelpers`

传递给解析处理函数的辅助工具。

```typescript
type MarkdownParseHelpers = {
  parseInline: (tokens: MarkdownToken[]) => JSONContent[]
  parseChildren: (tokens: MarkdownToken[]) => JSONContent[]
  createTextNode: (text: string, marks?: Array<{ type: string; attrs?: any }>) => JSONContent
  createNode: (type: string, attrs?: any, content?: JSONContent[]) => JSONContent
  applyMark: (markType: string, content: JSONContent[], attrs?: any) => MarkdownParseResult
}
```

---

### `MarkdownRendererHelpers`

传递给渲染处理函数的辅助工具。

```typescript
type MarkdownRendererHelpers = {
  renderChildren: (nodes: JSONContent | JSONContent[], separator?: string) => string
  wrapInBlock: (prefix: string, content: string) => string
  indent: (content: string) => string
}
```

---

### `RenderContext`

传递给渲染处理函数的上下文信息。

```typescript
type RenderContext = {
  index: number // 节点在父节点中的索引
  level: number // 嵌套层级
  parentType?: string // 父节点类型
  meta: Record<string, any> // 自定义元数据
}
```

---

### `MarkdownTokenizer`

MarkedJS 的自定义分词器。

```typescript
type MarkdownTokenizer = {
  name: string
  level?: 'block' | 'inline'
  start?: (src: string) => number | undefined
  tokenize: (src: string, tokens: MarkdownToken[], lexer: MarkdownLexerConfiguration) => MarkdownToken | undefined
}
```

---

### `MarkdownLexerConfiguration`

自定义分词器的词法分析器辅助工具。

```typescript
type MarkdownLexerConfiguration = {
  inlineTokens: (src: string) => MarkdownToken[]
  blockTokens: (src: string) => MarkdownToken[]
}
```

---

### `MarkdownParseResult`

解析处理函数的返回结果类型。

```typescript
type MarkdownParseResult = JSONContent | JSONContent[] | { mark: string; content: JSONContent[]; attrs?: any } | null
```

---

### `ExtendableMarkdownSpec`

扩展中的 Markdown 配置。

```typescript
type ExtendableMarkdownSpec = {
  name?: string
  parseName?: string
  renderName?: string
  parse?: (token: MarkdownToken, helpers: MarkdownParseHelpers) => MarkdownParseResult
  render?: (node: JSONContent, helpers: MarkdownRendererHelpers, context: RenderContext) => string
  isIndenting?: boolean
  tokenizer?: MarkdownTokenizer
}
```
