Bonjour @scavin, merci d’avoir signalé ce problème et d’avoir fourni les détails de reproduction.
J’ai enquêté sur le ralentissement du point d’entrée Markdown que vous avez décrit et j’ai identifié un problème dans MarkdownEndpoint::CookedProcessor#replace_details : les éléments <details> imbriqués étaient convertis de manière répétée, ce qui entraînait un traitement exponentiel.
J’ai ouvert une PR en brouillon en amont avec une correction :
À huit niveaux d’imbrication, la correction a réduit les conversions récursives de 255 à 8, avec une accélération d’environ 31 fois dans mon benchmark local. La PR a passé ses vérifications CI GitHub initiales.
Je travaille également sur le paramètre de site details_max_nesting_depth que vous avez proposé, au sein du plugin Details intégré, en utilisant 0 pour une imbrication illimitée afin de préserver le comportement existant. La première implémentation est écrite, mais ses tests d’intégration sont toujours en cours.
La correction de performances traite le problème de conversion Markdown côté serveur ; la limite configurable fournirait une mesure de sécurité supplémentaire, en particulier pour les performances côté navigateur.
Je serais ravi de recevoir vos retours sur le paramètre proposé et sur le fait de savoir s’il serait préférable de l’inclure dans la même PR ou de le soumettre séparément.