Maximale Verschachtelungstiefe für aufklappbare Details hinzufügen

Hallo @scavin, danke für deinen Hinweis und die Bereitstellung der Replikationsdetails.

Ich habe die von dir beschriebene Verlangsamung des Markdown-Endpunkts untersucht und ein Problem in MarkdownEndpoint::CookedProcessor#replace_details identifiziert: Verschachtelte <details>-Elemente wurden wiederholt konvertiert, was zu einer exponentiellen Verarbeitungsdauer führte.

Ich habe einen Entwurf für einen Upstream-PR mit einer Lösung erstellt:

Bei acht Verschachtelungsebenen reduzierte die Lösung die rekursiven Konvertierungen von 255 auf 8, was in meinem lokalen Benchmark zu einer Geschwindigkeitssteigerung von etwa 31× führte. Der PR hat die ersten GitHub-CI-Prüfungen bestanden.

Ich arbeite außerdem an deinem vorgeschlagenen Site-Einstellung details_max_nesting_depth innerhalb der eingebauten Details-Plugin, wobei 0 für unbegrenzte Verschachtelung verwendet wird, um das bestehende Verhalten beizubehalten. Die erste Implementierung ist geschrieben, aber ihre Integrationstests sind noch im Gange.

Die Leistungskorrektur behebt das Problem der serverseitigen Markdown-Konvertierung; die konfigurierbare Grenze würde einen zusätzlichen Schutz bieten, insbesondere für die Leistung auf der Browserseite.

Ich würde Feedback zur vorgeschlagenen Einstellung begrüßen und ob es vorzuziehen wäre, sie in denselben PR aufzunehmen oder sie separat einzureichen.

1 „Gefällt mir“