Beaucoup de code pour un simple safehtml() partout à la fin
Bon, j'ai eu du mal à dérouler la pelotte pour comprendre ce que faisait vraiment le plugin.
En fait,
* la fonction `echapper_html_suspect()` appelée https://git.spip.net/spip-contrib-extensions/htmlpurifier/src/branch/master/inc/texte.php#L817 ne sert plus à rien puisque on echappe tout le html juste au dessus
* tout se fait via la rule `securite-js`
https://git.spip.net/spip-contrib-extensions/htmlpurifier/src/branch/master/wheels/spip/interdire-scripts.yaml#L21
qui dans le core est
`if_match: "/<(?:script|iframe|embed|object|img|image|body|bgsound|meta)/iS"`
et est devenue
`if_match: "/<[a-z]+/iS"`
Donc en gros dès qu'on a une balise html on appelle `echappe_js()`, ce qui est le cas de tout ce qui passe dans `propre()`
Une fois dans echappe_js, ona cette rule un peu chelou
https://git.spip.net/spip-contrib-extensions/htmlpurifier/src/branch/master/wheels/spip/echappe-js.yaml#L24
`match: "{<[a-z]+.*?($|>)}UisS"`
avec un double "non greedy" qui s'annule, et donc en gros on prend toutes les balises et on les envoie dans la fonction `echappe_anti_xss()`
laquelle fait donc un `safehtml()` qui est un appel à la lib Purifier
https://git.spip.net/spip-contrib-extensions/htmlpurifier/src/branch/master/wheels/spip/echappe-js.php#L23
En résumé, beaucoup de surcharges de code et de complication pour juste faire un appel à purifier sur chaque balise html du contenu en post-propre et post-typo, ce qui pourrait se faire bien plus simplement par un appel depuis les 2 pipelines, une fois que SPIP a fait tout son travail.
(et éventuellement en annulant la fonction `echapper_html_suspect()` si elle nous embête plutôt qu'autre chose).
issue