js-markdown
Version:
A markdown language js compiler.
49 lines (42 loc) • 1.17 kB
JavaScript
/**
* match a superscript to display footnote number
*
* syntax like this:
*
* see footnote1 [^footnote1]
* [^footnote1]: this is a footnote.
*
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function parse(str, children, renderTree) {
var result = str.match(/^\[\^(.*?)\]/);
if (!result) {
return;
}
for (var i = 0, len = renderTree.footnotes.length; i < len; i++) {
if (renderTree.footnotes[i].key === result[1]) {
// if one footnote is not used, it will be ignored and not rendered
renderTree.footnotes[i].activated = true;
return [{
type: 'Superscript',
index: i + 1,
rawValue: ''
}, result[0].length];
}
}
return;
}
function render() {
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var node = arguments.length > 1 ? arguments[1] : undefined;
return "<sup id=\"fnref".concat(node.index, "\">[<a href=\"#fn").concat(node.index, "\" rel=\"footnote\">").concat(node.index, "</a>]</sup>");
}
var _default = {
parse: parse,
render: render
};
exports["default"] = _default;