UNPKG

zero-md

Version:

Ridiculously simple zero-config markdown displayer

103 lines (102 loc) 2.87 kB
/** * @typedef {object} ZeroMdRenderObject * @property {'styles'|'body'} [target] * @property {string} [text] * @property {string} [hash] * @property {boolean} [changed] * @property {string} [baseUrl] * @property {boolean} [stamped] */ export default class ZeroMdBase extends HTMLElement { static get observedAttributes(): string[]; set src(val: string); get src(): string; get auto(): boolean; get bodyClass(): string; version: any; template: string; _clicked: any; _observer: MutationObserver; _loaded: boolean; /** @type {HTMLElement|ShadowRoot} */ root: HTMLElement | ShadowRoot; /** * @param {string} name * @param {string} old * @param {string} val */ attributeChangedCallback(name: string, old: string, val: string): void; connectedCallback(): Promise<void>; ready: boolean; disconnectedCallback(): void; _observe(): void; /** * Async load function that runs after constructor. Like constructor, only runs once. * @returns {Promise<*>} */ load(): Promise<any>; /** * Async parse function that takes in markdown and returns the html-formatted string. * Can use any md parser you prefer, like marked.js * @param {ZeroMdRenderObject} obj * @returns {Promise<string>} */ parse({ text }: ZeroMdRenderObject): Promise<string>; /** * Scroll to heading id * @param {string} id */ goto(id: string): void; /** * Convert html string to document fragment * @param {string} html * @returns {DocumentFragment} */ frag(html: string): DocumentFragment; /** * Compute 32-bit DJB2a hash in base36 * @param {string} str * @returns {string} */ hash(str: string): string; /** * Await the next tick * @returns {Promise<*>} */ tick(): Promise<any>; /** * Fire custom event * @param {string} name * @param {*} [detail] */ fire(name: string, detail?: any): void; /** * Retrieve raw style templates and markdown strings * @param {ZeroMdRenderObject} obj * @returns {Promise<ZeroMdRenderObject>} */ read(obj: ZeroMdRenderObject): Promise<ZeroMdRenderObject>; /** * Stamp parsed html strings into dom * @param {ZeroMdRenderObject} obj * @returns {Promise<ZeroMdRenderObject>} */ stamp(obj: ZeroMdRenderObject): Promise<ZeroMdRenderObject>; /** * Start rendering * @param {{ fire?: boolean, goto?: string|false }} obj * @returns {Promise<*>} */ render({ fire, goto }?: { fire?: boolean; goto?: string | false; }): Promise<any>; } export type ZeroMdRenderObject = { target?: "styles" | "body"; text?: string; hash?: string; changed?: boolean; baseUrl?: string; stamped?: boolean; };