UNPKG

very-small-parser

Version:

A very small Markdown, HTML, and CSS parser.

20 lines (19 loc) 976 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.def = exports.hr = exports.urlInline = exports.title = exports.label = exports.replace = void 0; const util_1 = require("../util"); const replace = (reg, map) => { let source = reg.source; for (const key in map) source = (0, util_1.rep)(new RegExp(key, 'g'), map[key].source, source); return new RegExp(source, reg.flags); }; exports.replace = replace; exports.label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/; exports.title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/; exports.urlInline = /(https?:\/\/)(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}(\.[a-z]{2,4})?\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=,\*]*)/; exports.hr = /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/; exports.def = (0, exports.replace)(/^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, { label: exports.label, title: exports.title, });