@rtdui/editor
Version:
React rich text editor based on tiptap
34 lines (33 loc) • 1.34 kB
TypeScript
import { type Highlighter, type BundledLanguage, type BundledTheme } from "shiki";
import type { Node as ProsemirrorNode } from "@tiptap/pm/model";
type HighlighterOptions = {
themes: (BundledTheme | null | undefined)[];
languages: (BundledLanguage | null | undefined)[];
};
export declare function resetHighlighter(): void;
export declare function getShiki(): Highlighter | undefined;
/**
* Load the highlighter. Makes sure the highlighter is only loaded once.
*/
export declare function loadHighlighter(opts: HighlighterOptions): Promise<void> | undefined;
/**
* Loads a theme if it's valid and not yet loaded.
* @returns true or false depending on if it got loaded.
*/
export declare function loadTheme(theme: BundledTheme): Promise<boolean>;
/**
* Loads a language if it's valid and not yet loaded
* @returns true or false depending on if it got loaded.
*/
export declare function loadLanguage(language: BundledLanguage): Promise<boolean>;
/**
* Initializes the highlighter based on the prosemirror document,
* with the themes and languages in the document.
*/
export declare function initHighlighter({ doc, name, defaultTheme, defaultLanguage, }: {
doc: ProsemirrorNode;
name: string;
defaultLanguage: BundledLanguage | null | undefined;
defaultTheme: BundledTheme;
}): Promise<void>;
export {};