/** * Convertit du Markdown Mistral en HTML sécurisé. * Gère : **bold**, *italic*, ## titres, listes - et •, retours à la ligne. * Pas de dépendance externe. */ export function useMarkdown() { function render(text: string): string { if (!text) return '' let html = text // Échappement XSS de base .replace(/&/g, '&') .replace(//g, '>') // Titres ## et ### .replace(/^### (.+)$/gm, '$1') .replace(/^## (.+)$/gm, '$1') .replace(/^# (.+)$/gm, '$1') // Bold et italic .replace(/\*\*(.+?)\*\*/g, '$1') .replace(/\*(.+?)\*/g, '$1') // Listes (- item ou • item en début de ligne) .replace(/^[-•]\s+(.+)$/gm, '
')
// Saut de ligne simple →
html = html.replace(/\n/g, '
')
return `
${html}
` } return { render } }