UNPKG

markdown-editor-preview

Version:

基于Vue3和TypeScript的Markdown预览编辑器,支持双向滚动同步、代码高亮和自定义渲染器,提供流畅的编辑和预览体验

43 lines (42 loc) 1.74 kB
import { default as Token } from 'markdown-it/lib/token.mjs'; import { default as Renderer } from 'markdown-it/lib/renderer.mjs'; import { default as MarkdownIt } from 'markdown-it'; export interface GenericDirective { type: string; label: string; href: string; attrs: Record<string, any>; } /** * 解析指令语法,从中提取出各个部分并处理转义,详解见: * https://blog.kaciras.com/article/18/add-video-support-to-markdown * * @param line 待解析的文本 * @return 包含各个部分的对象 * @throws 如果给定的文本不符合指令语法 */ export declare function parseGenericDirective(line: string): GenericDirective; /** * 自定义渲染函数,以 type 作为键,值为渲染函数。 * 其中 href 已经使用上面的 checkLink 对 XSS 做了检查。 * * 【为何在渲染函数中检查链接】 * 与传统的 Markdown 语法不同,通用指令旨在支持一系列的扩展功能,其几个片段的意义由指令决定, * 解析器只做提取,故只有在渲染函数中才能确定字段是不是链接。 */ export interface DirectiveMap { /** * 自定义指令的渲染,属性名对应指令,返回 HTML。 * * @param this MarkdownIt 的渲染器。 * @param token 要渲染的 Token。 * @param md MarkdownIt 对象。 * @param env 用户自定义的对象。 */ [type: string]: (this: Renderer, token: Token, md: MarkdownIt, env: any) => string; } /** * 默认的指令表,有 audio、video 和 gif 类型,简单地渲染为 <audio> 和 <video> */ export declare const defaultDirectiveMap: Readonly<DirectiveMap>; export default function (md: MarkdownIt, map?: Readonly<DirectiveMap>): void;