const RE_IMG = /(.*?)<\/img>/i; const RE_A = /(.*?)<\/a>/i; const RE_BLOCKQUOTE = /(.*?)<\/blockquote>/i; function replacer(RE, cb) { // eslint-disable-line no-unused-vars // eslint-disable-next-line no-eval return eval(`(substr)=>{ const s = RE.exec(substr); return cb(s); }`); } function html2md(str) { return str.replace(/

/gmi, '').replace(/<\/p>/gmi, ' ') .replace(//gmi, (substr) => { const s = //i.exec(substr); return `${'#'.repeat(parseInt(s[1]))} `; }) .replace(/<\/h[0-6]>/, '\n') .replace(/<\/?code>/, '\n```\n') .replace(/.*?<\/img>/gmi, replacer(RE_IMG, (s) => `![${s[2]}](${s[1]})`)) .replace(/.*?<\/a>/gmi, replacer(RE_A, (s) => `[${s[2]}](${s[1]})`)) .replace(/.*?<\/blockquote>/gmi, replacer(RE_BLOCKQUOTE, (s) => `> ${s[1]}`)); } global.Hydro.lib.html2md = module.exports = html2md;