Não tenho certeza se isso é um problema específico do wp-discourse ou do analisador HTML do próprio Discourse, mas parece que comentários HTML de várias linhas não estão sendo ocultados nas postagens geradas pelo wp-discourse.
Acabei de configurar o chinwag.pluralistic.net, baseado nas postagens do pluralistic.net de Cory Doctorow. As postagens dele incluem alguns metadados no topo na forma de comentários HTML. Recentemente, esse formato mudou para várias linhas em vez de uma única linha.
Você pode ver neste post:
O comentário de linha única do artigo original foi removido:
No entanto, o comentário de várias linhas de uma postagem posterior é exibido diretamente:
Não acho que o problema esteja sendo causado pelo plugin do WordPress. Aqui está um exemplo de marcação que não é interpretado como um comentário pelo 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>
O problema é que as linhas em branco dentro do comentário são interpretadas como parágrafos pelo Discourse. Quando isso acontece, o comentário HTML deixa de ser uma marcação válida. Se as linhas em branco forem removidas do interior do comentário, ele será interpretado corretamente pelo 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>
Além de editar o conteúdo da postagem antes de publicá-la no Discourse, não tenho certeza de qual seria a melhor abordagem para lidar com isso.
Provavelmente, a melhor maneira de lidar com isso seria remover os comentários da postagem antes de publicá-la no Discourse. Talvez o plugin devesse fazer isso por padrão, mas é a primeira vez que me deparo com esse problema.
O plugin WP Discourse possui um filtro que pode ser acionado para analisar o conteúdo da postagem antes de ser publicado no Discourse. O filtro se chama wp_discourse_excerpt. O conteúdo da postagem é passado para ele como uma variável. Veja como esse filtro pode ser usado para remover todos os comentários da postagem do WordPress antes que ela seja publicada no Discourse. Esse padrão também pode ser usado para alterar a postagem de outras maneiras:
Adicionar esse código ao arquivo functions.php do seu tema do WordPress deve resolver o problema. Se não estiver funcionando para você, verifique se a extensão libxml está habilitada no servidor do seu site do WordPress.
Vou tentar isso, mas parece ser um problema maior se entidades HTML em um comentário fizerem o Discourse decidir que o comentário agora é HTML inválido, não?
Não tenho certeza de como o Discourse deve lidar com isso. Acho que, para posts criados diretamente no Discourse, faz sentido dizer que apenas um subconjunto limitado de HTML é suportado, mas para posts criados por meio da API ou importados de um feed RSS, não está claro até que ponto o Discourse deve ir para suportar HTML.
Acho que faria sentido adicionar o código que postei acima diretamente ao plugin WP Discourse. O plugin já está usando funcionalidade semelhante para limpar comentários trazidos do Discourse para o WordPress. Isso tem sido usado há algum tempo sem relatos de problemas. Vou retornar a você sobre isso nos próximos dias.
Isso foi adicionado na versão 2.0.6 do WP Discourse. Quando o conteúdo completo da postagem é publicado do WordPress para o Discourse, quaisquer blocos de comentários na postagem são removidos antes que a postagem seja enviada ao Discourse.