'use strict'; const greentextRegex = /^>((?!>).+)/gm , pinktextRegex = /^<(.+)/gm , boldRegex = /''(.+?)''/gm , titleRegex = /==(.+?)==/gm , monoRegex = /`(.+?)`/gm , underlineRegex = /__(.+?)__/gm , strikethroughRegex = /~~(.+?)~~/gm , italicRegex = /\*\*(.+?)\*\*/gm , spoilerRegex = /\|\|([\s\S]+?)\|\|/gm , detectedRegex = /(\(\(\(.+?\)\)\))/gm , linkRegex = /https?\://[^\s<>\[\]{}|\\^]+/g , codeRegex = /```([\s\S]+?)```/gm , diceRegex = /##(?\d+)d(?\d+)(?:(?[+-])(?\d+))?/gmi , diceRoll = require(__dirname+'/diceroll.js') module.exports = (text) => { //pinktext text = text.replace(pinktextRegex, (match, pinktext) => { return `<${pinktext}`; }); //greentext text = text.replace(greentextRegex, (match, greentext) => { return `>${greentext}`; }); //links text = text.replace(linkRegex, (match) => { return `${match}`; }); //bold text = text.replace(boldRegex, (match, bold) => { return `${bold}`; }); //underline text = text.replace(underlineRegex, (match, underline) => { return `${underline}`; }); //strikethrough text = text.replace(strikethroughRegex, (match, strike) => { return `${strike}`; }); //titles text = text.replace(titleRegex, (match, title) => { return `${title}`; }); //italic text = text.replace(italicRegex, (match, italic) => { return `${italic}`; }); //spoilers text = text.replace(spoilerRegex, (match, spoiler) => { return `${spoiler}`; }); //code text = text.replace(codeRegex, (match, code) => { return `${code.replace(/^\s*\n/, '')}`; }); //inline monospace text = text.replace(monoRegex, (match, mono) => { return `${mono}`; }); //detected text = text.replace(detectedRegex, (match, detected) => { return `${detected}`; }); //dice rolls text = text.replace(diceRegex, diceRoll); return text; }