Ok, vou responder às questões que você está levantando aqui separadamente. Entendo por que você as está conectando, mas espero que você veja por que são problemas separados.
Entidades HTML em notificações de e-mail em texto puro
a coisa mais legal seria se as mensagens de e-mail fossem multipartidas, com uma versão em markdown renderizada em texto limpo (
text/plain) e uma versão separada emtext/html
Na verdade, é assim que as notificações de e-mail do Discourse funcionam atualmente. Se você olhar o “original” de uma notificação de e-mail do Discourse, verá que há uma versão em texto e uma versão em HTML.
Parece que você está dizendo, mas ainda não tenho 100% de certeza disso, que você está recebendo entidades HTML na versão em texto puro das notificações de e-mail do Discourse, o que resulta em você ver as próprias entidades HTML no corpo do e-mail ao visualizá-lo em um cliente de e-mail que não suporta HTML. É isso que você está dizendo? Você poderia compartilhar uma captura de tela disso de um cliente de e-mail (que não suporta HTML)?
Se for esse o caso, este é um problema específico da geração e formatação do conteúdo dos e-mails do Discourse, e seria melhor separá-lo em um tópico mais direcionado em #suporte ou #contribuir:bug.
HTML nas publicações do Discourse
Você está levantando uma questão relevante aqui, mas, do ponto de vista técnico, a questão reside em como o Discourse aborda o conteúdo importado de forma mais ampla. O padrão atual para conteúdo importado é HTML, não markdown.
Outros contextos nos quais você pode ver isso são o plugin RSS Polling, que, assim como o plugin WP Discourse, importa HTML para o conteúdo da publicação. Observe também que a configuração do site embed support markdown está desativada por padrão, assim como todas as outras configurações do site que lidam com HTML incorporado nas publicações (por exemplo, allowed embed selectors).
Estou chutando em parte aqui, mas a razão mais provável para essa decisão estratégica ter sido tomada nos primeiros dias do Discourse lidando com conteúdo importado foi uma combinação de simplicidade e fidelidade, ou seja, as conversões de HTML para markdown serão imperfeitas. Há uma exceção importante a isso, que mencionarei abaixo.
O plugin WP Discourse poderia tentar converter o HTML das publicações do WordPress para markdown antes de enviá-las ao Discourse. Sim, existem bibliotecas PHP existentes que convertem HTML para markdown, mas nunca é tão simples assim ao converter uma linguagem de marcação, especialmente considerando os diferentes sabores de markdown.
De fato, a tentativa do plugin WP Discourse de lidar com a conversão seria realmente equivocada, considerando que já existe um conversor personalizado HtmlToMarkdown no Discourse. Atualmente, este conversor lida com a conversão de HTML para markdown em e-mails importados para o Discourse. Se o HTML das publicações do WordPress fosse convertido para markdown do Discourse, isso precisaria ser tratado por esse conversor.
Atualmente, o plugin WP Discourse usa a API do Discourse para publicar publicações, ou seja, o endpoint /posts. Então, essencialmente, o que você está dizendo é que deseja que o suporte ao conversor HtmlToMarkdown seja adicionado ao endpoint /posts do Discourse (ou seja, como um parâmetro de consulta opcional). Você poderia defender isso e, se implementado, o plugin WP Discourse o adotaria como uma configuração opcional.