Je ne sais pas si c’est un problème spécifique à wp-discourse ou au解析eur HTML de Discourse lui-même, mais il semble que les commentaires HTML sur plusieurs lignes ne soient pas masqués dans les publications générées par wp-discourse.
Je viens de terminer la configuration de chinwag.pluralistic.net, basée sur les articles de pluralistic.net de Cory Doctorow. Ses articles incluent des métadonnées en haut sous forme de commentaires HTML. Récemment, ce format est passé d’une seule ligne à plusieurs lignes.
Vous pouvez le voir dans cet article :
Le commentaire sur une seule ligne de l’article d’origine est supprimé :
Cependant, le commentaire sur plusieurs lignes d’un article ultérieur est affiché directement :
Je ne pense pas que le problème soit causé par le plugin WordPress. Voici un exemple de balisage qui n’est pas interprété comme un commentaire par Discourse :
<p><!--
Tags:
Summary:
New podcast; Europe's interop coalition; Scarfolk beermats; Miami cop owns illegal mansion nightclub; Video and transcript of my OII talk; Shower temperature vs handle position
URL:
https://pluralistic.net/2020/07/06/polbathic/
Title:
Pluralistic: 06 Jul 2020 polbathic
Bullet:
🧔🏿
Separator:
_,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,_
Top Sources:
Today's top sources: Fipi Lele, Naked Capitalism (https://www.nakedcapitalism.com/).
-->
<br></p>
Le problème est que les lignes vides à l’intérieur du commentaire sont interprétées comme des paragraphes par Discourse. Une fois cela fait, le commentaire HTML n’est plus un balisage valide. Si les lignes vides sont supprimées du commentaire, il sera interprété correctement par Discourse :
<p><!--
Tags:
Summary:
New podcast; Europe's interop coalition; Scarfolk beermats; Miami cop owns illegal mansion nightclub; Video and transcript of my OII talk; Shower temperature vs handle position
URL:
https://pluralistic.net/2020/07/06/polbathic/
Title:
Pluralistic: 06 Jul 2020 polbathic
Bullet:
🧔🏿
Separator:
_,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,__,.-'~'-.,_
Top Sources:
Today's top sources: Fipi Lele, Naked Capitalism (https://www.nakedcapitalism.com/).
-->
<br></p>
À part modifier le contenu du post avant de publier les posts sur Discourse, je ne suis pas sûr de quelle serait la meilleure approche pour gérer cela.
Probablement la meilleure façon de gérer cela serait de supprimer les commentaires du post avant de le publier sur Discourse. Peut-être que le plugin devrait le faire par défaut, mais c’est la première fois que je rencontre ce problème.
Le plugin WP Discourse dispose d’un filtre auquel on peut se connecter pour analyser le contenu du post avant sa publication sur Discourse. Le filtre s’appelle wp_discourse_excerpt. Le contenu du post lui est passé en tant que variable. Voici comment utiliser ce filtre pour supprimer tous les commentaires du post WordPress avant sa publication sur Discourse. Ce modèle peut également être utilisé pour modifier le post d’autres manières :
Ajouter ce code au fichier functions.php de votre thème WordPress devrait résoudre le problème. Si cela ne fonctionne pas pour vous, vérifiez que l’extension libxml est activée sur le serveur de votre site WordPress.
Je vais effectivement essayer cela, mais cela ressemble à un problème plus important si des entités HTML dans un commentaire poussent Discourse à considérer que ce commentaire est désormais un HTML invalide, non ?
Je ne suis pas sûr de savoir comment Discourse devrait gérer cela. Je pense que pour les publications créées directement sur Discourse, il est logique de dire qu’un sous-ensemble limité de HTML est pris en charge, mais pour les publications créées via l’API ou en important un flux RSS, il n’est pas clair pour moi jusqu’où Discourse devrait aller pour prendre en charge le HTML.
Je pense qu’il serait logique d’ajouter directement le code que j’ai publié ci-dessus au plugin WP Discourse. Le plugin utilise déjà une fonctionnalité similaire pour nettoyer les commentaires importés de Discourse vers WordPress. Cela est utilisé depuis un certain temps maintenant, sans aucun rapport de problème. Je reviendrai vers vous à ce sujet dans les prochains jours.
Cela a été ajouté dans la version 2.0.6 de WP Discourse. Lorsque le contenu complet d’un article est publié depuis WordPress vers Discourse, tous les blocs de commentaires présents dans l’article sont supprimés avant l’envoi de l’article à Discourse.