import { power_user } from './power-user.js'; // Showdown extension to make chat separators (dinkuses) ignore markdown formatting export const markdownExclusionExt = () => { if (!power_user) { console.log("Showdown-dinkus extension: power_user wasn't found! Returning."); return [] } let combinedExcludeString = ''; if (power_user.context.chat_start) { combinedExcludeString += `${power_user.context.chat_start},`; } if (power_user.context.example_separator) { combinedExcludeString += `${power_user.context.example_separator},`; } if (power_user.markdown_escape_strings) { combinedExcludeString += power_user.markdown_escape_strings; } const escapedExclusions = combinedExcludeString .split(",") .filter((element) => element.length > 0) .map((element) => `(${element.split('').map((char) => `\\${char}`).join('')})`); // No exclusions? No extension! if (!combinedExcludeString || combinedExcludeString.length === 0 || escapedExclusions.length === 0) { return []; } const replaceRegex = new RegExp(`^(${escapedExclusions.join("|")})\n`, "gm"); return [{ type: "lang", regex: replaceRegex, replace: ((match) => match.replace(replaceRegex, `\u0000${match} \n`)) }]; }