UNPKG

markdown-it-wikirefs

Version:

markdown-it plugin to add wikirefs (including [[wikilinks]])

111 lines (110 loc) 3.86 kB
/// <reference types="markdown-it" /> import MarkdownIt from 'markdown-it/lib'; interface OptCssNames { // ref (all); 'a' html tag wiki: string; invalid: string; // kind attr: string; link: string; type: string; embed: string; // types reftype: string; doctype: string; // attr attrbox: string; attrItem: string; // embed embedWrapper: string; embedTitle: string; embedLink: string; linkIcon: string; embedContent: string; embedLinkIcon: string; // media kind embedMedia: string; embedAudio: string; embedImage: string; embedPDF: string; embedVideo: string; } interface OptAttr { enable: boolean; render: boolean; title: string; } interface OptLink { enable: boolean; } interface OptEmbed { enable: boolean; title: string; errorContent: string; } interface WikiRefsOptions extends MarkdownIt.Options { prepFile?: (env: any) => void; // render functions // function declaration expectations below... resolveHtmlText: (env: any, fname: string) => string | undefined; resolveHtmlHref: (env: any, fname: string) => string | undefined; resolveDocType?: (env: any, fname: string) => string | undefined; // embed-only resolveEmbedContent: (env: any, fname: string, hText?: string | undefined) => string | undefined; // metadata functions addAttr?: (env: any, attrtype: string, fname: string) => void; addLink?: (env: any, linktype: string, fname: string, header?: string) => void; addEmbed?: (env: any, fname: string, header?: string) => void; // render opts baseUrl: string; cssNames: OptCssNames; // wiki kind options attrs: OptAttr; links: OptLink; embeds: OptEmbed; } interface WikiAttrsOptions extends MarkdownIt.Options { prepFile?: (env: any) => void; // render functions // function declaration expectations below... resolveHtmlText: (env: any, fname: string) => string | undefined; resolveHtmlHref: (env: any, fname: string) => string | undefined; resolveDocType?: (env: any, fname: string) => string | undefined; // metadata functions addAttr?: (env: any, attrtype: string, fname: string) => void; // render opts baseUrl: string; cssNames: OptCssNames; // wiki kind options attrs: OptAttr; } interface WikiLinksOptions extends MarkdownIt.Options { prepFile?: (env: any) => void; // render functions // function declaration expectations below... resolveHtmlText: (env: any, fname: string) => string | undefined; resolveHtmlHref: (env: any, fname: string) => string | undefined; resolveDocType?: (env: any, fname: string) => string | undefined; // metadata functions addLink?: (env: any, linktype: string, fname: string, header?: string) => void; // render opts baseUrl: string; cssNames: OptCssNames; // wiki kind options links: OptLink; } interface WikiEmbedsOptions extends MarkdownIt.Options { prepFile?: (env: any) => void; // render functions // function declaration expectations below... resolveHtmlText: (env: any, fname: string) => string | undefined; resolveHtmlHref: (env: any, fname: string) => string | undefined; resolveDocType?: (env: any, fname: string) => string | undefined; resolveEmbedContent: (env: any, fname: string, hText?: string | undefined) => string | undefined; // metadata functions addEmbed?: (env: any, fname: string, header?: string) => void; // render opts baseUrl: string; cssNames: OptCssNames; // wiki kind options embeds: OptEmbed; } declare function wikirefs_plugin(md: MarkdownIt, opts?: Partial<WikiRefsOptions>): void; export type { WikiRefsOptions, WikiAttrsOptions, WikiLinksOptions, WikiEmbedsOptions }; export { wikirefs_plugin as default };