UNPKG

remark-wikirefs

Version:

A `remark` plugin for wikirefs (including [[wikilinks]]).

116 lines (103 loc) 4.28 kB
// remark-wikirefs v0.0.6-rm - https://github.com/wikibonsai/remark-wikirefs.git import { syntaxWikiRefs, syntaxWikiAttrs, syntaxWikiLinks, syntaxWikiEmbeds } from 'micromark-extension-wikirefs'; import { fromMarkdownWikiRefs, toMarkdownWikiRefs, initWikiAttrBox, fromMarkdownWikiAttrs, toMarkdownWikiAttrs, fromMarkdownWikiLinks, toMarkdownWikiLinks, fromMarkdownWikiEmbeds, toMarkdownWikiEmbeds } from 'mdast-util-wikirefs'; var warningIssued = false; function remarkV13Warning(context) { if (!warningIssued && (context.Parser && context.Parser.prototype && context.Parser.prototype.blockTokenizers || context.Compiler && context.Compiler.prototype && context.Compiler.prototype.visitors)) { warningIssued = true; console.warn('[remark-wikirefs] Warning: please upgrade to remark 13 to use this plugin'); } return warningIssued; } // todo: 'remark-parse` v10+ function remarkWikiRefs(opts) { var _opts$attrs$render, _opts$attrs; var doRenderAttrBox = (_opts$attrs$render = opts === null || opts === void 0 ? void 0 : (_opts$attrs = opts.attrs) === null || _opts$attrs === void 0 ? void 0 : _opts$attrs.render) !== null && _opts$attrs$render !== void 0 ? _opts$attrs$render : true; var data = this.data(); // warn for earlier versions remarkV13Warning(this); add('micromarkExtensions', syntaxWikiRefs(opts)); add('fromMarkdownExtensions', fromMarkdownWikiRefs(opts)); add('toMarkdownExtensions', toMarkdownWikiRefs(opts)); function add(field, value) { if (data[field]) { data[field].push(value); } else { data[field] = [value]; } } // (for wikiattrs) // ref: https://github.com/remarkjs/remark-toc/blob/main/lib/index.js#L36 return function (tree) { if (doRenderAttrBox) { var attrbox = initWikiAttrBox(tree, opts); // place attrbox at the beginning of the tree content // @ts-expect-error: placing AttrBoxNode where Node type expected if (attrbox !== undefined) { tree.children.unshift(attrbox); } // todo: test to ensure no existence of caml tokens either...? } }; } function remarkWikiAttrs(opts) { var _opts$attrs$render2, _opts$attrs2; var doRenderAttrBox = (_opts$attrs$render2 = opts === null || opts === void 0 ? void 0 : (_opts$attrs2 = opts.attrs) === null || _opts$attrs2 === void 0 ? void 0 : _opts$attrs2.render) !== null && _opts$attrs$render2 !== void 0 ? _opts$attrs$render2 : true; var data = this.data(); // warn for earlier versions remarkV13Warning(this); add('micromarkExtensions', syntaxWikiAttrs(opts)); add('fromMarkdownExtensions', fromMarkdownWikiAttrs(opts)); add('toMarkdownExtensions', toMarkdownWikiAttrs(opts)); function add(field, value) { if (data[field]) { data[field].push(value); } else { data[field] = [value]; } } // ref: https://github.com/remarkjs/remark-toc/blob/main/lib/index.js#L36 return function (tree) { if (doRenderAttrBox) { var attrbox = initWikiAttrBox(tree, opts); // place attrbox at the beginning of the tree content // @ts-expect-error: placing AttrBoxNode where Node type expected if (attrbox !== undefined) { tree.children.unshift(attrbox); } // todo: test to ensure no existence of caml tokens either...? } }; } function remarkWikiLinks(opts) { var data = this.data(); // warn for earlier versions remarkV13Warning(this); add('micromarkExtensions', syntaxWikiLinks(opts)); add('fromMarkdownExtensions', fromMarkdownWikiLinks(opts)); add('toMarkdownExtensions', toMarkdownWikiLinks(opts)); function add(field, value) { if (data[field]) { data[field].push(value); } else { data[field] = [value]; } } } function remarkWikiEmbeds(opts) { var data = this.data(); // warn for earlier versions remarkV13Warning(this); add('micromarkExtensions', syntaxWikiEmbeds(opts)); add('fromMarkdownExtensions', fromMarkdownWikiEmbeds(opts)); add('toMarkdownExtensions', toMarkdownWikiEmbeds(opts)); function add(field, value) { if (data[field]) { data[field].push(value); } else { data[field] = [value]; } } } export { remarkWikiAttrs, remarkWikiEmbeds, remarkWikiLinks, remarkWikiRefs }; //# sourceMappingURL=index.js.map