@cisstech/nge
Version:
NG Essentials is a collection of libraries for Angular developers.
91 lines (90 loc) • 3.61 kB
TypeScript
import type { Renderer, Tokenizer, TokensList } from 'marked';
import { NgeMarkdownConfig } from './nge-markdown-config';
declare type AstTransformer = (tokens: TokensList) => TokensList;
declare type HtmlTransformer = (element: HTMLElement) => void;
declare type MarkdownTransformer = (markdown: string) => string;
declare type RendererTransformer = (renderer: Renderer) => Renderer;
declare type TokenizerTransformer = (tokenizer: Tokenizer) => Tokenizer;
/**
* Nge markdown transformer used by the contributions.
*/
export declare class NgeMarkdownTransformer {
/** Configuration option */
readonly config: NgeMarkdownConfig;
private readonly astTransformers;
private readonly htmlTransformers;
private readonly markdownTransformers;
private readonly rendererTransformers;
private readonly tokenizerTransformers;
constructor(
/** Configuration option */
config: NgeMarkdownConfig);
/**
* Registers a function to call to update the ast generated by the markdown compiler.
* @param transform the function to call.
*/
addAstTransformer(transform: AstTransformer): void;
/**
* Registers a function to call to transform the html generated by the markdown compiler.
* @param transformer the function to call.
*/
addHtmlTransformer(transformer: HtmlTransformer): void;
/**
* Registers a function to call to transform the markdown before it's parsed by the markdown compiler.
* @param transform the function to call.
*/
addMarkdownTransformer(transform: MarkdownTransformer): void;
/**
* Registers a function to call to update marked library renderer.
* @param transform the function to call.
*/
addRendererTransformer(transform: RendererTransformer): void;
/**
* Registers a function to call to update marked library tokenizer.
* @param transform the function to call.
*/
addTokenizerTransformer(transform: TokenizerTransformer): void;
/**
* Apply the registered ast transformer functions to the given ast.
* @param ast the ast to transform.
* @returns the transformed ast.
*/
transformAst(ast: TokensList): TokensList;
/**
* Apply the registered html transformer functions to the given html.
* @param element the html element to transform.
* @returns the transformed html.
*/
transformHTML(element: HTMLElement): HTMLElement;
/**
* Apply the registered markdown transformer functions to the given markdown.
* @param markdown the markdown to transform.
* @returns the transformed markdown.
*/
transformMarkdown(markdown: string): string;
/**
* Apply the registered renderer transformer functions to the given renderer.
* @param renderer the renderer to transform.
* @returns the transformed renderer.
*/
transformRenderer(renderer: Renderer): Renderer;
/**
* Apply the registered tokenizer transformer functions to the given tokenizer.
* @param tokenizer the tokenizer to transform.
* @returns the transformed tokenizer.
*/
transformTokenizer(tokenizer: Tokenizer): Tokenizer;
/**
* Add new stylesheet element to the document.
* @param url url to the stylesheet.
* @returns A promise that resolves once the element is loaded.
*/
addStyle(url: string): Promise<any>;
/**
* Add new script element to the document.
* @param url url to the script.
* @returns A promise that resolves once the element is loaded.
*/
addScript(url: string): Promise<any>;
}
export {};