Plugin Wordpress e html-como-texto (especialmente para e-mail)

Ok, vou responder às questões que você levanta aqui separadamente. Entendo por que você as está conectando, mas espero que veja por que são questões separadas.

Entidades HTML em notificações de e-mail de texto simples

O ideal seria que as mensagens de e-mail fossem multipartes com um text/plain renderizado em markdown limpo e um text/html separado.

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.

O que você parece estar dizendo, mas ainda não tenho 100% de clareza sobre isso, é que você está recebendo entidades HTML na versão de texto simples das notificações de e-mail do Discourse, com o resultado de que você está vendo as entidades HTML reais 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 de conteúdo de e-mail do Discourse e seria melhor separá-lo em um tópico mais direcionado em Support ou Bug.

HTML em posts do Discourse

Você levanta uma questão relevante aqui, mas, de uma perspectiva técnica, a questão reside em como o Discourse aborda o conteúdo importado de forma mais ampla. A configuração padrão atual para conteúdo importado é HTML, não markdown.

Outros contextos em que você pode ver isso é o plugin RSS Polling, que, assim como o plugin WP Discourse, importa HTML para o conteúdo do post. Observe também que a configuração do site embed support markdown está desativada por padrão e todas as outras configurações do site que lidam com HTML incorporado em posts (por exemplo, allowed embed selectors).

Estou adivinhando em parte, mas o(s) motivo(s) mais provável(is) para essa decisão estratégica ter sido tomada nos primórdios do Discourse ao lidar 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 dos posts do WordPress para markdown antes de enviá-los para o 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, o plugin WP Discourse tentar lidar com a conversão seria equivocado, 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 de posts do WordPress fosse convertido para markdown do Discourse, ele precisaria ser tratado por esse conversor.

Atualmente, o plugin WP Discourse usa a API do Discourse para publicar posts, ou seja, o endpoint /posts. Então, essencialmente, o que você está dizendo é que deseja que o suporte do 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.

1 curtida