Plugin Wordpress e html-as-text (specialmente per le email)

Ok, risponderò separatamente ai problemi che stai sollevando qui. Capisco perché li stai collegando, ma spero che vedrai perché sono problemi separati.

Entità HTML nelle notifiche email di testo normale

La cosa migliore sarebbe che i messaggi email fossero multipart con un rendering markdown in testo pulito text/plain e un text/html separato.

Questo è in realtà il modo in cui funzionano attualmente le notifiche email di Discourse. Se guardi l’“originale” di una notifica email di Discourse, vedrai che c’è una versione testuale e una versione HTML.

Quello che sembra che tu stia dicendo, ma non sono ancora sicuro al 100%, è che stai ricevendo entità HTML nella versione di testo normale delle notifiche email di Discourse, il risultato è che stai vedendo le vere entità HTML nel corpo dell’email quando la guardi in un client di posta elettronica che non supporta HTML. È questo che stai dicendo? Potresti condividere uno screenshot di questo da un client di posta elettronica (che non supporta HTML)?

Se questo è il caso, si tratta di un problema specifico della generazione e formattazione dei contenuti delle email di Discourse e sarebbe meglio dividerlo in un argomento più mirato in Support o Bug.

HTML nei post di Discourse

Stai sollevando un problema pertinente qui, ma da una prospettiva tecnica la questione riguarda come Discourse gestisce i contenuti importati in generale. L’impostazione predefinita attuale per i contenuti importati è HTML, non markdown.

Altri contesti in cui puoi vederlo è il plugin RSS Polling, che, come il plugin WP Discourse, importa HTML nel contenuto del post. Nota anche che l’impostazione del sito embed support markdown è disattivata per impostazione predefinita e tutte le altre impostazioni del sito che riguardano l’HTML incorporato nei post (ad esempio, allowed embed selectors).

Sto indovinando in parte, ma il motivo più probabile per cui questa decisione strategica è stata presa nei primi giorni di Discourse nella gestione dei contenuti importati è stata una combinazione di semplicità e fedeltà, ovvero le conversioni da HTML a markdown saranno imperfette. C’è un’eccezione chiave a questo che menzionerò di seguito.

Il plugin WP Discourse potrebbe tentare di convertire l’HTML dei post di WordPress in markdown prima di inviarli a Discourse. Sì, esistono librerie PHP esistenti che convertono HTML in markdown, ma non è mai così semplice quando si converte un linguaggio di markup, considerando in particolare i diversi sapori di markdown.

Infatti, il plugin WP Discourse che tenta di gestire la conversione sarebbe effettivamente fuorviante, considerando che esiste già un convertitore personalizzato HtmlToMarkdown in Discourse. Attualmente questo convertitore gestisce la conversione di HTML in markdown nelle email importate in Discourse. Se l’HTML dei post da WordPress dovesse essere convertito in markdown di Discourse, dovrebbe essere gestito da quel convertitore.

Attualmente il plugin WP Discourse utilizza l’API di Discourse per pubblicare post, ovvero l’endpoint /posts. Quindi, essenzialmente, quello che stai dicendo è che desideri che il supporto del convertitore HtmlToMarkdown venga aggiunto all’endpoint /posts di Discourse (cioè come parametro di query opzionale). Potresti sostenere questo e, se implementato, il plugin WP Discourse lo adotterebbe come impostazione opzionale.

1 Mi Piace