Ok, ich werde separat auf die von Ihnen angesprochenen Probleme eingehen. Ich verstehe, warum Sie sie miteinander verbinden, aber hoffentlich werden Sie sehen, warum es sich um getrennte Probleme handelt.
HTML-Entitäten in einfachen Text-E-Mail-Benachrichtigungen
Das Schönste wäre, wenn die E-Mail-Nachrichten mehrteilig wären, mit einem sauberen Text-gerenderten Markdown
text/plainund einem separatentext/html.
Dies ist tatsächlich die Funktionsweise der E-Mail-Benachrichtigungen von Discourse. Wenn Sie sich das “Original” einer Discourse-E-Mail-Benachrichtigung ansehen, werden Sie feststellen, dass es eine Textversion und eine HTML-Version gibt.
Was Sie zu sagen scheinen, aber ich bin mir immer noch nicht zu 100 % sicher, ist, dass Sie HTML-Entitäten in der einfachen Textversion von Discourse-E-Mail-Benachrichtigungen erhalten, mit dem Ergebnis, dass Sie die tatsächlichen HTML-Entitäten im Text der E-Mail sehen, wenn Sie sie in einem E-Mail-Client betrachten, der kein HTML unterstützt. Ist das, was Sie sagen? Könnten Sie einen Screenshot davon aus einem E-Mail-Client (der kein HTML unterstützt) teilen?
Wenn dies der Fall ist, handelt es sich um ein Problem, das spezifisch für die E-Mail-Inhaltsgenerierung und -formatierung von Discourse ist, und es wäre am besten, dies in einem gezielteren Thema unter Support oder Bug abzutrennen.
HTML in Discourse-Posts
Sie sprechen hier ein relevantes Problem an, aber aus technischer Sicht liegt die Frage bei der Art und Weise, wie Discourse importierte Inhalte im Allgemeinen behandelt. Die aktuelle Standardeinstellung für importierte Inhalte ist HTML, nicht Markdown.
Andere Kontexte, in denen Sie dies sehen können, sind das RSS Polling Plugin, das, wie das WP Discourse Plugin, HTML in den Post-Inhalt importiert. Beachten Sie auch, dass die Website-Einstellung embed support markdown standardmäßig deaktiviert ist und alle anderen Website-Einstellungen, die sich mit eingebettetem HTML in Beiträgen befassen (z. B. allowed embed selectors).
Ich rate hier teilweise, aber der wahrscheinlichste Grund für diese strategische Entscheidung in den frühen Tagen der Discourse-Verarbeitung importierter Inhalte war eine Kombination aus Einfachheit und Treue, d. h. Konvertierungen von HTML zu Markdown werden unvollkommen sein. Es gibt eine wichtige Ausnahme, die ich unten erwähnen werde.
Das WP Discourse Plugin könnte versuchen, das HTML von WordPress-Posts in Markdown zu konvertieren, bevor es sie an Discourse sendet. Ja, es gibt bestehende PHP-Bibliotheken, die HTML in Markdown konvertieren, aber das ist nie so einfach, wenn man eine Markup-Sprache konvertiert, insbesondere angesichts der verschiedenen Markdown-Varianten.
Tatsächlich wäre es irreführend, wenn das WP Discourse Plugin versuchen würde, die Konvertierung zu handhaben, da es bereits einen benutzerdefinierten HtmlToMarkdown-Konverter in Discourse gibt. Derzeit handhabt dieser Konverter die Konvertierung von HTML in Markdown in E-Mails, die in Discourse importiert werden. Wenn das HTML von Beiträgen aus WordPress in Discourse-Markdown konvertiert werden sollte, müsste dies von diesem Konverter übernommen werden.
Derzeit verwendet das WP Discourse Plugin die Discourse API, um Beiträge zu veröffentlichen, d. h. den /posts-Endpunkt. Was Sie also im Wesentlichen sagen, ist, dass Sie möchten, dass die HtmlToMarkdown-Konverterunterstützung zum Discourse /posts-Endpunkt hinzugefügt wird (d. h. als optionaler Query-Parameter). Sie könnten dafür werben, und wenn dies implementiert wird, würde das WP Discourse Plugin es als optionale Einstellung übernehmen.