UNPKG

@moritzrs/micromark-extension-ofm-wikilink

Version:

micromark extension to support OFM wikilinks

45 lines (44 loc) 1.34 kB
/** * Create an HTML extension for `micromark` to support OFM wikilinks when * serializing to HTML. */ export function ofmWikilinkHtml() { let url = ""; let value = ""; let embedded = false; return { enter: { ofmWikilink() { url = ""; value = ""; embedded = false; }, ofmWikilinkEmbeddingMarker() { embedded = true; }, ofmWikilinkPath(token) { const content = this.sliceSerialize(token); url = content; const parts = content.split("/"); value = parts[parts.length - 1]; if (value.includes(".")) value = value.split(".").slice(0, -1).join("."); }, ofmWikilinkHash(token) { url += `#${this.sliceSerialize(token)}`; }, ofmWikilinkAlias(token) { value = this.sliceSerialize(token); }, }, exit: { ofmWikilink() { const anchor = `<a href="${url}">${value}</a>`; if (embedded) this.tag(`<iframe src="${url}">${anchor}</iframe>`); else this.tag(anchor); }, }, }; }