UNPKG

js-markdown

Version:
71 lines (58 loc) 1.54 kB
/** * match a image * * (1) basic syntax like this: * * ![alt text](/path/to/img.jpg "optional title") * * (2) use a reference define * * ![alt text][reference define] * [reference define]: url/to/image "optional title attribute" * */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; function parse(str, children, renderTree) { var result = str.match(/^!\[(.*?)\][ \t]*\([ \t]*([^")]*?)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/); // basic usage if (result) { var node = { type: 'Image', alt: result[1], src: result[2] }; if (result[4]) { node.title = result[4]; } return [node, result[0].length]; } result = str.match(/^!\[(.*?)\][ \t]*\[(.*?)\]/); // use reference define if (result) { var ref = renderTree.referenceDefine[result[2].toLowerCase()]; if (!ref) { return; } var _node = { type: 'Image', alt: result[1], src: ref.href }; if (ref.title) { _node.title = ref.title; } return [_node, result[0].length]; } } function render() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var node = arguments.length > 1 ? arguments[1] : undefined; return "<img".concat(node.alt ? " alt=\"".concat(node.alt, "\"") : '').concat(node.title ? " title=\"".concat(node.title, "\"") : '', " src=\"").concat(node.src, "\"/>"); } var _default = { parse: parse, render: render }; exports["default"] = _default;