Mermaid/Django, sanitizing и нормализация комментариев
Mermaid использует %% для комментариев. LLM часто возвращает строки с #, текст перед кодом и пояснения после fenced-блока. Парсер воспринимает такие строки как часть диаграммы и возвращает синтаксическую ошибку.
Django сначала извлекает Mermaid-блок. sanitize_mermaid ищет первую поддерживаемую команду, удаляет строки до нее и нормализует комментарии. Сервер сохраняет очищенный код с %%.
Next.js создает отдельную строку для рендера. Строки с %% удаляются, оставшийся код проходит mermaid.parse. После успешной проверки mermaid.render возвращает SVG.
Витрина проекта: AI Chat github
Проект: AI Chat
Stepik: LLM-Chat + Mermaid + ЮKassa