markdown-editor-preview
Version:
基于Vue3和TypeScript的Markdown预览编辑器,支持双向滚动同步、代码高亮和自定义渲染器,提供流畅的编辑和预览体验
43 lines (42 loc) • 1.74 kB
TypeScript
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;