Vue and extension API
Signatures and descriptions generated from the public TypeScript exports.
QuireMarkdown props are described by QuireMarkdownProps below. Its event is error(failure: MarkdownReadingError).
Public contracts
QuireMarkdownProps
@quirekit/incremark/vueMITVue reader supporting ordinary static text, streamed text and existing parser snapshots.
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/vueMITInstance-local semantic tag replacements; application components are trusted code.
export type MarkdownComponents = Readonly<Partial<Record<string, Component | string>>>;MarkdownNodeInfo
@quirekit/incremark/vueMITSource metadata supplied to registered framework components.
interface MarkdownNodeInfo {
readonly type: string;
readonly from: number;
readonly to: number;
}MarkdownHtmlOptions
@quirekit/incremark/vueMITAdditional restrictions over the fixed HTML sanitizer; executable tags cannot be enabled.
interface MarkdownHtmlOptions {
readonly styles?: "safe";
readonly allowedElements?: readonly string[];
readonly allowLink?: (url: string) => boolean;
readonly allowImage?: (url: string) => boolean;
}MarkdownRenderOptions
@quirekit/incremark/vueMITRendering configuration does not alter source parsing.
export interface MarkdownRenderOptions {
readonly cache?: boolean;
readonly components?: MarkdownComponents;
readonly html?: boolean | MarkdownHtmlOptions;
readonly renderNode?: MarkdownNodeRenderer;
readonly renderNodeKey?: (state: EditorState) => unknown;
}MarkdownReadingContext
@quirekit/incremark/vueMITValidated Vue reading inputs with bounded recursive helpers.
export interface MarkdownReadingContext<Attrs extends object = Readonly<Record<string, unknown>>> extends CoreContext<VNodeChild, Attrs> {
}MarkdownReadingDefinition
@quirekit/incremark/vueMITVue presentation attached to a source extension.
export interface MarkdownReadingDefinition<Attrs extends object = Readonly<Record<string, unknown>>, Resource = unknown> extends CoreDefinition<VNodeChild, Attrs, Resource> {
}withMarkdownReading
@quirekit/incremark/vueMITAdds snapshot reading to a fully configured source extension without altering its editing behavior. @param extension - Existing Node, Mark or source-bearing descriptor; configure/extend it first. @param definition - Trusted Vue presentation and optional abortable resource acquisition. @returns An ordinary installable MSFE definition using the original semantic codec and lifecycle.
function withMarkdownReading<Attrs extends object = Readonly<Record<string, unknown>>, Resource = unknown>(extension: AnyExtension, definition: MarkdownReadingDefinition<Attrs, Resource>): AnyExtensionMarkdownCacheLimits
@quirekit/incremark/vueMITPer-reader retention limits; exceeding a limit falls back to ordinary projection.
interface MarkdownCacheLimits {
readonly maxBlocks?: number;
readonly maxSourceUnits?: number;
}MarkdownRenderWork
@quirekit/incremark/vueMITActual work in the most recent projection; excludes parsing, DOM diff and painting.
interface MarkdownRenderWork {
visitedBlocks: number;
reusedBlocks: number;
projectedNodes: number;
dependencyNodes: number;
semanticChecks: number;
cachedBlocks: number;
cachedSourceUnits: number;
}Advanced projection
MarkdownRenderer
@quirekit/incremark/vueMITVue-compatible cache owner; all reuse proofs and retention live in core.
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@param state - Accepted source. @param locale - Control language. @param prefix - Instance namespace. @param onError - Failure observer. @param options - Presentation configuration. @returns Ordinary safe Vue projection over the shared core walker.
function renderMarkdown(state: EditorState, locale: MarkdownLocale, prefix?: string, onError?: (error: MarkdownReadingError) => void, options?: MarkdownRenderOptions): VNodeChild