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 tu possa vedere perché si tratta di problemi distinti.

Entità HTML nelle notifiche email in testo normale

la cosa migliore sarebbe che i messaggi email fossero multipartiti, con una versione text/plain renderizzata in markdown pulito e una versione separata text/html.

Questo è effettivamente come funzionano attualmente le notifiche email di Discourse. Se guardi l’“originale” di una notifica email di Discourse, vedrai che esiste una versione in testo e una versione HTML.

Quello che sembra stia dicendo, anche se non sono ancora al 100% chiaro su questo punto, è che stai ricevendo entità HTML nella versione in testo normale delle notifiche email di Discourse, il che comporta che vedi le entità HTML effettive nel corpo dell’email quando la visualizzi in un client di posta che non supporta l’HTML. È questo che intendi? Potresti condividere uno screenshot di questo da un client di posta (che non supporta l’HTML)?

Se è così, questo è un problema specifico della generazione e formattazione dei contenuti email di Discourse e sarebbe meglio separarlo in un argomento più mirato in Support o Contribute > Bug.

HTML nei post di Discourse

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

Altri contesti in cui puoi vedere questo è 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 relative all’HTML incorporato nei post (ad es. allowed embed selectors) sono configurate di conseguenza.

Sto indovinando in parte qui, ma le ragioni più probabili per cui questa decisione strategica è stata presa nei primi giorni di gestione dei contenuti importati in Discourse sono state 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 le diverse varianti di markdown.

Infatti, il tentativo da parte del plugin WP Discourse di gestire la conversione sarebbe effettivamente fuorviante, considerando che esiste già un convertitore personalizzato HtmlToMarkdown in Discourse. Attualmente, questo convertitore gestisce la conversione da HTML a 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 i post, ovvero l’endpoint /posts. Quindi essenzialmente quello che stai dicendo è che vuoi che venga aggiunto il supporto del convertitore HtmlToMarkdown all’endpoint /posts di Discourse (ovvero come parametro di query opzionale). Potresti fare pressione per questo e, se implementato, il plugin WP Discourse lo adotterebbe come impostazione opzionale.