QuireMarkdown 的属性见下方 QuireMarkdownProps,唯一事件为 error(failure: MarkdownReadingError)。
公开合同
QuireMarkdownProps
@quirekit/incremark/vueMITVue 阅读组件,接受普通文本、流式文本或已有解析快照。
QuireMarkdownPropsts
export interface QuireMarkdownProps extends MarkdownRenderOptions {
readonly content?: string;
readonly state?: EditorState;
readonly identity?: string;
readonly status?: MarkdownStatus;
readonly options?: MarkdownOptions;
readonly locale?: MarkdownLocale;
readonly ssr?: "semantic" | "source";
}MarkdownComponents
@quirekit/incremark/vueMIT阅读实例内的语义标签替换表;应用组件属于可信代码。
MarkdownComponentsts
export type MarkdownComponents = Readonly<Partial<Record<string, Component | string>>>;MarkdownNodeInfo
@quirekit/incremark/vueMIT自定义框架组件收到的原生源码元数据。
MarkdownNodeInfots
interface MarkdownNodeInfo {
readonly type: string;
readonly from: number;
readonly to: number;
}MarkdownHtmlOptions
@quirekit/incremark/vueMIT在固定 HTML 净化规则之上追加限制;不能开启可执行标签。
MarkdownHtmlOptionsts
interface MarkdownHtmlOptions {
readonly styles?: "safe";
readonly allowedElements?: readonly string[];
readonly allowLink?: (url: string) => boolean;
readonly allowImage?: (url: string) => boolean;
}MarkdownRenderOptions
@quirekit/incremark/vueMIT不改变源码解析的渲染配置。
MarkdownRenderOptionsts
export interface MarkdownRenderOptions {
readonly cache?: boolean;
readonly components?: MarkdownComponents;
readonly html?: boolean | MarkdownHtmlOptions;
readonly renderNode?: MarkdownNodeRenderer;
readonly renderNodeKey?: (state: EditorState) => unknown;
}MarkdownReadingContext
@quirekit/incremark/vueMIT只读、经过验证的 Vue 阅读输入,提供源码范围内的递归 helper。
MarkdownReadingContextts
export interface MarkdownReadingContext<Attrs extends object = Readonly<Record<string, unknown>>> extends CoreContext<VNodeChild, Attrs> {
}MarkdownReadingDefinition
@quirekit/incremark/vueMIT附加到现有 source extension 的 Vue 呈现。
MarkdownReadingDefinitionts
export interface MarkdownReadingDefinition<Attrs extends object = Readonly<Record<string, unknown>>, Resource = unknown> extends CoreDefinition<VNodeChild, Attrs, Resource> {
}withMarkdownReading
@quirekit/incremark/vueMIT为配置完成的源码扩展添加快照阅读能力,保留编辑行为。extension 是已配置的 Node、Mark 或源码描述,definition 提供可信渲染和可取消资源加载;返回沿用语义 codec 与生命周期的可安装 MSFE 定义。
withMarkdownReadingts
function withMarkdownReading<Attrs extends object = Readonly<Record<string, unknown>>, Resource = unknown>(extension: AnyExtension, definition: MarkdownReadingDefinition<Attrs, Resource>): AnyExtensionMarkdownCacheLimits
@quirekit/incremark/vueMIT每个阅读器的保留预算,超额回退到普通投影。
MarkdownCacheLimitsts
interface MarkdownCacheLimits {
readonly maxBlocks?: number;
readonly maxSourceUnits?: number;
}MarkdownRenderWork
@quirekit/incremark/vueMIT最近一次投影的实际工作量,不包含解析、DOM diff 或绘制。
MarkdownRenderWorkts
interface MarkdownRenderWork {
visitedBlocks: number;
reusedBlocks: number;
projectedNodes: number;
dependencyNodes: number;
semanticChecks: number;
cachedBlocks: number;
cachedSourceUnits: number;
}高级投影
MarkdownRenderer
@quirekit/incremark/vueMITVue 阅读缓存;所有复用依据、预算和准备/提交合同由公共内核持有。
MarkdownRendererts
export class MarkdownRenderer extends CoreRenderer<VNodeChild> {
constructor(limits?: MarkdownCacheLimits);
override get work(): Readonly<MarkdownRenderWork>;
override clear(): void;
override prepare(state: EditorState, locale: MarkdownLocale, prefix?: string, onError?: (error: MarkdownReadingError) => void, options?: MarkdownRenderOptions): MarkdownRenderFrame<VNodeChild>;
override render(state: EditorState, locale: MarkdownLocale, prefix?: string, onError?: (error: MarkdownReadingError) => void, options?: MarkdownRenderOptions): VNodeChild;
}renderMarkdown
@quirekit/incremark/vueMIT从已接受的源码快照生成完整 Vue 投影;locale 控制语言,prefix 隔离导航,onError 隔离错误,options 配置呈现。
renderMarkdownts
function renderMarkdown(state: EditorState, locale: MarkdownLocale, prefix?: string, onError?: (error: MarkdownReadingError) => void, options?: MarkdownRenderOptions): VNodeChild