markdown-it-wikirefs
Version:
markdown-it plugin to add wikirefs (including [[wikilinks]])
110 lines (109 loc) • 3.72 kB
TypeScript
/// <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;
reftype: string;
doctype: string;
// attr
attrbox: string;
attrboxTitle: string;
// embed
embedWrapper: string;
embedTitle: string;
embedLink: string;
linkIcon: string;
embedContent: string;
embedLinkIcon: string;
// media kind
embedMedia: string;
embedAudio: string;
embedDoc: string;
embedImage: 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) => string | undefined;
// metadata functions
addAttr?: (env: any, attrtype: string, fname: string) => void;
addLink?: (env: any, linktype: string, fname: string) => void;
addEmbed?: (env: any, fname: 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) => 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) => string | undefined;
// metadata functions
addEmbed?: (env: any, fname: 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 };