Привет, @scavin, спасибо за сообщение об этой проблеме и за предоставление деталей для воспроизведения.
Я расследовал замедление работы Markdown-эндпоинта, о котором вы сообщили, и обнаружил проблему в MarkdownEndpoint::CookedProcessor#replace_details: вложенные элементы <details> конвертировались многократно, что приводило к экспоненциальному росту времени обработки.
Я создал черновик PR upstream с исправлением:
При глубине вложенности в восемь уровней исправление сократило количество рекурсивных конвертаций с 255 до 8, что дало примерно 31-кратное ускорение в моих локальных бенчмарках. PR успешно прошел первоначальные проверки CI на GitHub.
Я также работаю над предложенным вами параметром настройки сайта details_max_nesting_depth в встроенном плагине Details, используя значение 0 для неограниченной вложенности, чтобы сохранить существующее поведение. Начальная реализация написана, но интеграционные тесты все еще в процессе.
Исправление производительности решает проблему серверной конвертации Markdown; настраиваемый лимит предоставит дополнительную защиту, особенно для производительности на стороне браузера.
Буду рад получить обратную связь по предложенному параметру и узнать, предпочтительнее ли включить его в тот же PR или отправить отдельно.