// Generic replacements/link-breakers export function sanitizeMarkdown(markdown: string): string { let res = markdown; // Put a zero width space after every # followed by a digit res = res.replace(/#(\d)/gi, '#​$1'); // Put a zero width space after every @ symbol to prevent unintended hyperlinking res = res.replace(/@/g, '@​'); res = res.replace(/(`\[?@)​/g, '$1'); res = res.replace(/([a-z]@)​/gi, '$1'); res = res.replace(/\/compare\/@​/g, '/compare/@'); res = res.replace(/(\(https:\/\/[^)]*?)\.\.\.@​/g, '$1...@'); res = res.replace(/([\s(])#(\d+)([)\s]?)/g, '$1#​$2$3'); // convert escaped backticks back to ` const backTickRe = /`([^/]*?)`/g; res = res.replace(backTickRe, '`$1`'); res = res.replace(/`#​(\d+)`/g, '`#$1`'); return res; }