Markdown 类型 API
Beta
类型
MarkdownExtensionOptions
Markdown 扩展的配置选项。
type MarkdownExtensionOptions = {
indentation?: {
style?: 'space' | 'tab'
size?: number
}
marked?: typeof marked
markedOptions?: MarkedOptions
}MarkdownExtensionSpec
扩展中 Markdown 支持的配置。
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 结构。
type MarkdownToken = {
type: string
raw?: string
text?: string
tokens?: MarkdownToken[]
[key: string]: any
}MarkdownParseHelpers
传递给解析处理函数的辅助工具。
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
传递给渲染处理函数的辅助工具。
type MarkdownRendererHelpers = {
renderChildren: (nodes: JSONContent | JSONContent[], separator?: string) => string
wrapInBlock: (prefix: string, content: string) => string
indent: (content: string) => string
}RenderContext
传递给渲染处理函数的上下文信息。
type RenderContext = {
index: number // 节点在父节点中的索引
level: number // 嵌套层级
parentType?: string // 父节点类型
meta: Record<string, any> // 自定义元数据
}MarkdownTokenizer
MarkedJS 的自定义分词器。
type MarkdownTokenizer = {
name: string
level?: 'block' | 'inline'
start?: (src: string) => number | undefined
tokenize: (src: string, tokens: MarkdownToken[], lexer: MarkdownLexerConfiguration) => MarkdownToken | undefined
}MarkdownLexerConfiguration
自定义分词器的词法分析器辅助工具。
type MarkdownLexerConfiguration = {
inlineTokens: (src: string) => MarkdownToken[]
blockTokens: (src: string) => MarkdownToken[]
}MarkdownParseResult
解析处理函数的返回结果类型。
type MarkdownParseResult = JSONContent | JSONContent[] | { mark: string; content: JSONContent[]; attrs?: any } | nullExtendableMarkdownSpec
扩展中的 Markdown 配置。
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
}