import React from 'react'; const MD_LINK_REGEX = /\[([^\]\r\n]+)\]\((https?:\/\/[^\s)]+|\/[^\s)]+)\)/; const parseCache = new Map(); function parseMarkdownLinks(text: string): React.ReactNode[] { if (!text) return []; if (parseCache.has(text)) return parseCache.get(text)!; const parts = text.split(MD_LINK_REGEX); const elements: React.ReactNode[] = []; for (let i = 0; i < parts.length; i += 3) { if (parts[i]) { elements.push(parts[i]); } if (i + 1 < parts.length) { const label = parts[i + 1]; const url = parts[i + 2]; elements.push( {label} { } ); } } parseCache.set(text, elements); return elements; } export const InlineLinkText = React.memo(function InlineLinkText({ text }: { text: string }) { return <>{parseMarkdownLinks(text)}; });